SSH 101

Terminal SSH este un utilitar pentru transfer de date, login sau execuție de comenzi de la distanță sau alte servicii ce implică două calculatoare conectate în rețea. Fiind un utilitar extrem de folosit pentru lucrul în rețea e necesar să știm măcar ce anume se poate face cu ajutorul lui. Voi prezenta opțiuni și comenzi folosite de mine în mod uzual fără să explic fiecare element în parte. La nevoie puteți folosi google pentru a afla detalii.

Parolă vs. Chei Criptografice

Pe lângă accesul uzual cu parolă prin SSH se poate folosi și accesul cu ajutorul cheilor criptografice. Această metodă de acces prezintă siguranță sporită dar este și mult mai comodă, practic eliminând nevoia de a ține minte zeci de parole pentru diverse situații.

ssh-keygen  # crează o pereche de chei (privată și publică)
# ~/.ssh/id_rsa         # cheia privată
# ~/.ssh/id_rsa.pub     # cheia publică

Cheia privată nu se înstrăinează niciodată. Conținutul cheii publice va fi copiat în ~/.ssh/authorized_keys pe toate calculatoarele la care doriți să aveți acces direct, fără parola.

Atenție: La crearea perechii de chei SSH puteți folosi o parolă. Această parolă este folosită pentru sigurnață cheii private generate și nu are absolut nici o legătură cu parola de pe propriul calculator sau de pe calculatoarele la care urmează să vă conectați.

Conectarea propriu zisă / comenzi

Mai jos puteți vedea o serie de comenzi SSH uzuale:

# conectare la serverul rohost.com folosind user-ul root
ssh root@rohost.com

# se executa comanda uptime pe serverul rohost.com
ssh root@rohost.com uptime

# copiază fișierul arhivă.zip pe serverul rohost.com în directorul /home/rohost 
scp arhiva.zip root@rohost.com:/home/rohost/

# copiază fișierul arhiva.zip de pe serverul rohost.com în directorul curent
scp root@rohost.com:/home/rohost/arhiva.zip ./

# copiază întreg subdirectorul arhivă pe server în directorul /tmp
scp -r arhiva rohost.com:/tmp

Configurare client SSH

Fișierul de configurare client conține preferințele de comportament al SSH-ului folosit. Practic toate comenzile din config pot fi executate și direct din linia de comandă însă odată salvate aici vor fi luate în calcul la fiecare execuție SSH.

# ~/.ssh/config
ForwardAgent            no

Host *
    Compression         no
    ControlMaster       auto
    ControlPath         ~/.ssh/master-%h:%r:%p
    ControlPersist      60

Pentru comenzi mai avansate puteți urmări secțiunea SSH+.

Conținutul acestui site reflectă interesele și preferințele autorilor.