Android

Folosind fișierul de configurare ssh

SSH (Secure Shell) - Cos'è e come si usa

SSH (Secure Shell) - Cos'è e come si usa

Cuprins:

Anonim

O opțiune ar fi crearea unui alias bash pentru fiecare conexiune la server la distanță. Cu toate acestea, există o altă soluție mult mai bună și mai simplă la această problemă. OpenSSH vă permite să configurați un fișier de configurare per utilizator în care puteți stoca diferite opțiuni SSH pentru fiecare mașină la distanță la care vă conectați.

Acest ghid acoperă elementele de bază ale fișierului de configurare a clientului SSH și explică unele dintre cele mai comune opțiuni de configurare.

Cerințe preliminare

Presupunem că utilizați un Linux sau un sistem macOS cu clientul OpenSSH instalat.

SSH Config Locația fișierului

Fișierul de configurare din partea clientului OpenSSH poartă numele de config și este stocat în directorul .ssh în directorul de acasă al utilizatorului.

Directorul ~/.ssh este creat automat atunci când utilizatorul rulează pentru prima dată comanda ssh . Dacă directorul nu există pe sistemul dvs., creați-l folosind comanda de mai jos:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

În mod implicit, fișierul de configurare SSH poate să nu existe, astfel încât să fie necesar să îl creați folosind comanda tactilă:

touch ~/.ssh/config

Acest fișier trebuie să fie lizibil și scris numai de către utilizator și să nu fie accesibil de către alții:

chmod 600 ~/.ssh/config

SSH Config File Structure and Patterns

Fișierul de configurare SSH are următoarea structură:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

Conținutul fișierului de configurare a clientului SSH este organizat în strofe (secțiuni). Fiecare stanza începe cu directiva Host și conține opțiuni SSH specifice care sunt utilizate la stabilirea unei conexiuni cu serverul SSH de la distanță.

Indentarea nu este necesară, dar este recomandată, deoarece facilitează citirea fișierului.

Directiva Host poate conține un model sau o listă de modele separate de spațiul alb. Fiecare model poate conține zero sau mai multe caractere non-spațiu alb sau unul dintre următorii specificatori de model:

  • * - Potrivește zero sau mai multe caractere. De exemplu, Host * potrivește cu toate gazdele, în timp ce 192.168.0.* potrivește cu gazdele din subrețea 192.168.0.0/24 . ? - Potrivește exact un personaj. Modelul, Host 10.10.0.? se potrivește cu toate gazdele în 10.10.0. gamă. ! - Când este utilizat la începutul unui model, acesta anulează potrivirea. De exemplu, Host 10.10.0.* !10.10.0.5 potrivește cu orice gazdă din subrețeaua 10.10.0.5 cu excepția 10.10.0.5 .

Clientul SSH citește strofa fișierului de configurare în funcție de stanza și, dacă se potrivesc mai multe modele, opțiunile din prima stanza potrivită au prioritate. Prin urmare, la începutul fișierului ar trebui să se dea mai multe declarații specifice gazdei și să se înlocuiască mai mult general la sfârșitul fișierului.

Puteți găsi o listă completă de opțiuni ssh disponibile, tastând man ssh_config în terminalul dvs. sau accesând pagina de manual ssh_config.

Fișierul de configurare SSH este citit și de alte programe precum scp , sftp și rsync .

Exemplu de fișier de configurare SSH

Acum că am acoperit elementele de bază ale fișierului de configurare SSH, să ne uităm la următorul exemplu.

De obicei, când vă conectați la un server la distanță prin SSH, specificați numele de utilizator, numele de gazdă și portul la distanță. De exemplu, pentru a vă autentifica ca un utilizator numit john la o gazdă numită dev.example.com pe portul 2322 din linia de comandă, ar trebui să introduceți:

ssh [email protected] -p 2322

Pentru a vă conecta la server folosind aceleași opțiuni prevăzute în comanda de mai sus pur și simplu tastând ssh dev , puneți următoarele linii în fișierul dvs. "~/.ssh/config :

~ /.Ssh / config

Host dev HostName dev.example.com User john Port 2322

Acum, când tastați ssh dev , clientul ssh va citi fișierul de configurare și va folosi detaliile de conexiune specificate pentru gazda dev :

ssh dev

Exemplu de fișier de configurare SSH partajat

Acest exemplu oferă informații mai detaliate despre modelele de gazdă și prioritatea opțiunii.

Să luăm următorul exemplu de fișier:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • Când tastați ssh targaryen , clientul ssh citește fișierul și aplică opțiunile de la primul meci, care este Host targaryen . Apoi verifică următoarele strofe una câte una pentru un model de potrivire. Următoarea potrivire este Host * !martell (adică toate gazdele, cu excepția martell ) și va aplica opțiunea de conectare din această stanza. De asemenea, ultima definiție Host * se potrivește, dar clientul ssh nu va lua decât opțiunea Compression deoarece opțiunea User este deja definită în stanza Host targaryen .

    Lista completă de opțiuni utilizate atunci când tastați ssh targaryen este următoarea:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    Când rulează ssh tyrell , modelele de gazdă potrivite sunt: Host tyrell Host *ell , Host *ell , Host * !martell și Host * . Opțiunile utilizate în acest caz sunt:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Pentru toate celelalte conexiuni, clientul ssh va folosi opțiunile specificate în secțiunile Host * !martell și Host * .

Anulează opțiunea de fișier de configurare SSH

Clientul ssh își citește configurația în ordinea precedentă:

  1. Opțiuni specificate din linia de comandă. Opțiuni definite în ~/.ssh/config Opțiuni definite în /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

și doriți să utilizați toate celelalte opțiuni, dar pentru a vă conecta ca root utilizator în loc de john pur și simplu specificați utilizatorul pe linia de comandă:

ssh -o "User=root" dev

Opțiunea -F ( configfile ) vă permite să specificați un fișier alternativ de configurare per utilizator.

Pentru a spune clientului ssh să ignore toate opțiunile specificate în fișierul de configurare ssh, utilizați:

ssh -F /dev/null [email protected]

Concluzie

V-am arătat cum să configurați fișierul dvs. de configurare a utilizatorului ssh. De asemenea, poate doriți să configurați o autentificare bazată pe cheie SSH și să vă conectați la serverele Linux fără a introduce o parolă.

În mod implicit, SSH ascultă portul 22. Schimbarea portului SSH implicit adaugă un strat suplimentar de securitate serverului dvs. prin reducerea riscului de atacuri automatizate.

terminalul ssh