Cum se folosește SSH

SSH este un protocol de rețea care asigură o comunicare securizată a datelor între două stații (calculatoare, tablete, telefoane sau alte dispozitive dintr-o rețea). Pentru a asigura confidențialitatea și integritatea informațiilor interschimbate, SSH se folosește de criptarea cu chei asimetrice.

Utilizatorul deține o pereche de chei: una publică și una privată. În timp ce cheia publică se trimite stației de la distanță (eng. remote) cu care se dorește comunicarea, cea privată rămâne tot timpul pe stația locală și trebuie protejată de public. De ce cheia publică trebuie trimisă stației de la distanță? Pentru ca aceasta să o poată folosi la decriptarea datelor primite în format securizat.

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tct/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tct/.ssh/id_rsa.
Your public key has been saved in /home/tct/.ssh/id_rsa.pub.
The key fingerprint is:
0c:22:38:50:54:e3:c9:4d:88:d8:5e:1f:a3:5e:91:10 tct@local

Utilizatorii sistemului GNU/Linux folosesc de regulă implementarea liberă OpenSSH (din proiectul OpenBSD), dar pe calculatoare slabe sau dispozitive încorporate (eng. embedded systems) folosesc alternativa Dropbear, de asemenea liberă. Merită menționat că cele două implementările de SSH rulează pe o multitudine de sisteme de operare.

OpenSSH și Dropbear sunt disponibile în două variante: client și server. Serverul trebuie să ruleze (pe un port accesibil, de regulă 22) pe stația de la distanță la care utilizatorul dorește să se conecteze, iar clientul trebuie să fie instalat pe stația locală.

SSH are două utilizări frecvente: conectarea la consola unei stații și copierea fișierelor pe o stație. Bineînțeles, în ambele cazuri, utilizatorul trebuie să aibă un cont pe sistemul de operare al stației de la distanță.

$ ssh utilizator@statie
statie's password:
$ scp -r dir1 fisier1 fisier2 utilizator@statie:/cale/la/dir2
statie's password:

La fiecare conectare, se cere parola contului de pe sistemul de la distanță, însă pentru a ușura lucrul cu SSH, se poate copia cheia publică de pe mașina locală pe mașina de la distanță. Cheile publice copiate astfel se află într-un fișier cu ajutorul căruia se permite conectarea fără a necesita introducerea parolei de sistem.

$ cat ~/.ssh/id_dsa.pub | ssh utilizator@statie "cat - >> \
  ~/.ssh/authorized_keys"

Sau, folosind o unealtă dedicată:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub statie

Dacă ți-ai setat parolă pe cheia SSH, aceasta va fi cerută chiar dacă ai adăugat cheia la lista celor permise.

$ ssh utilizator@statie
Password:

Informații suplimentare despre SSH, ca de exemplu folosirea mai multor perechi de chei, conectarea pe alt port, tunelarea ș.a. le poți afla consultând documentația.

$ man ssh

sau

$ info ssh

La cât mai multe conectări securizate prin SSH! :-)