În continuare va voi descrie pasii care trebuie urmati pentru a va putea loga prin intermediul ssh-ului cu ajutorul unui set de chei publice/private. Folosind aceasta metoda de autentificare nu trebuie sa mai introduceti parola când va logati pe o masina care este configurata sa accepte acest tip de conexiune{{ref|parola}}.
==Generarea setului de chei publice/private==
De pe masina de pe care vreti sa va logati (ex. desktop-ul vostru) generati un set de chei ssh format dintr-o cheie publica si o cheie privata.
Pentru generarea acestor chei trebuie sa folositi utilitarul ssh-keygen. Acesta poate genera chei RSA pentru protocolul ssh1 si chei RSA sau DSA pentru protoculul ssh2. Pentru mai multe detalii consultati manualul. Mai jos am generat un set de chei DSA pentru protoculul ssh2:
[andreea@gnu-linux ~]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/radu/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/radu/.ssh/id_dsa. Your public key has been saved in /home/radu/.ssh/id_dsa.pub. The key fingerprint is: 72:8c:1f:32:89:d5:76:63:d9:36:56:6d:bf:e8:3c:10 andreea@gnu-linux
Daca ati folosit locatia predefinita, atunci in directorul ~/.ssh veti avea 2 fisiere:
[andreea@gnu-linux .ssh]$ cd .ssh; ls -l -rw------- 1 andreea andreea 672 Dec 8 15:54 id_dsa -rw-r--r-- 1 andreea andreea 600 Dec 8 15:54 id_dsa.pub
;id_dsa:contine cheia privata
;id_dsa.pub: contine cheia publica
==Copierea cheii publice pe sistemul remote==
Pentru a va putea conecta fara parola la un sistem remote, trebuie sa adaugati cheia publica pe care ati generat-o mai devreme pe sistemul vostru in fisierul ~/.ssh/authorized_keys2
pe sistemul remote.
Mai intâi copiati fisierul id_dsa.pub de pe sistemul vostru pe sistemul remote:
[andreea@gnu-linux .ssh]$ scp ~/.ssh/id_dsa.pub andreea@gnu-linux:./id_dsa.pub andreea@gnu-linux's password: id_dsa.pub
Fisierul id_dsa.pub va fi copiat pe sistemul remote in directorul home al utilizatorului specificat.
Acum trebuie sa va logati (specificand parola) pe sistemul remote. Odata logat creaza directorul ~/.ssh
si fisierul ~/.ssh/authorized_keys2{{ref|key_file}}
, daca acestea nu exista deja.
[andreea@gnu-linux2 ~]$ mkdir ~/.ssh [andreea@gnu-linux2 ~]$ chmod 700 ~/.ssh [andreea@gnu-linux2 ~]$ touch .ssh/authorized_keys2 [andreea@gnu-linux2 ~]$ chmod 600 .ssh/authorized_keys2 [andreea@gnu-linux2 ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys2 [andreea@gnu-linux2 ~]$ rm -f ~/id_dsa.pub
'''Atentie''': permisiunile stabilite mai sus sunt foarte importante. In fisierul ~/.ssh/authorized_keys2 intreaga cheie publica este pe o singura linie.
==Observatii==
In exemplele din acest tutorial sunt folosite 2 masini:
* ''gnu-linux'' - masina locala
* ''gnu-linux2'' - masina remote
Pe ambele masini exista un utilizator ''andreea
''.
==Note==
* {{note|parola}} nu va fi necesara introducerea parolei in cazul in care cheia privata este salvata fara specificarea unei ''fraze cheie''. Acest lucru nu este recomandat; pentru a micsora numarul de parole introduse se recomanda utilizarea programului ssh-agent.
* {{note|key_file}} numele fisierului authorized_keys2 poate varia in functie de versiunea de SSH folosita (OpenSSH sau SSH2) sau configuratia particulara de pe masina in cauza. Pentru a verifica numele corect al fisierului, cautati in fisierul de configurare al server-ului de SSH optiunea AuthorizedKeysFile.