SSH este un protocol de retea care asigura o comunicare securizata a datelor intre doua statii (calculatoare, tablete, telefoane sau alte dispozitive dintr-o retea). Pentru a asigura confidentialitatea si integritatea informatiilor interschimbate, SSH se foloseste de criptarea cu chei asimetrice.
Utilizatorul detine o pereche de chei: una publica si una privata. În timp ce cheia publica se trimite statiei de la distanta (eng. remote) cu care se doreste comunicarea, cea privata ramâne tot timpul pe statia locala si trebuie protejata de public. De ce cheia publica trebuie trimisa statiei de la distanta? Pentru ca aceasta sa o poata folosi la decriptarea datelor primite in 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 regula implementarea libera OpenSSH (din proiectul OpenBSD), dar pe calculatoare slabe sau dispozitive incorporate (eng. embedded systems) folosesc alternativa Dropbear, de asemenea libera. Merita mentionat ca cele doua implementarile de SSH ruleaza pe o multitudine de sisteme de operare.
OpenSSH si Dropbear sunt disponibile in doua variante: client si server. Serverul trebuie sa ruleze (pe un port accesibil, de regula 22) pe statia de la distanta la care utilizatorul doreste sa se conecteze, iar clientul trebuie sa fie instalat pe statia locala.
SSH are doua utilizari frecvente: conectarea la consola unei statii si copierea fisierelor pe o statie. Bineinteles, in ambele cazuri, utilizatorul trebuie sa aiba un cont pe sistemul de operare al statiei de la distanta.
$ ssh user@pc pc's password: $ scp -r dir1 fisier1 fisier2 user@pc:/cale/la/dir2 pc's password:
La fiecare conectare, se cere parola contului de pe sistemul de la distanta, insa pentru a usura lucrul cu SSH, se poate copia cheia publica de pe masina locala pe masina de la distanta. Cheile publice copiate astfel se afla intr-un fisier cu ajutorul caruia se permite conectarea fara a necesita introducerea parolei de sistem.
$ cat ~/.ssh/id_dsa.pub | ssh user@pc "cat - >> \ ~/.ssh/authorized_keys"
Sau, folosind o unealta dedicata:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pc
Daca ti-ai setat parola pe cheia SSH, aceasta va fi ceruta chiar daca ai adaugat cheia la lista celor permise.
$ ssh user@pc Password:
Informatii suplimentare despre SSH, ca de exemplu folosirea mai multor perechi de chei, conectarea pe alt port, tunelarea s.a. le poti afla consultând documentatia.
$ man ssh
sau
$ info ssh