Difference between revisions of "Autentificare ssh folosind chei publice/private"
From linux360
Line 5: | Line 5: | ||
Folosind această metodă de autentificare nu trebuie să mai introduceţi parola | Folosind această metodă de autentificare nu trebuie să mai introduceţi parola | ||
când vă logaţi pe o maşină care este configurată să accepte acest tip de conexiune{{ref|parola}}. | când vă logaţi pe o maşină care este configurată să accepte acest tip de conexiune{{ref|parola}}. | ||
− | + | ||
+ | ==Generarea setului de chei publice/private== | ||
+ | De pe maşina de pe care vreţi să vă logaţi (ex. desktop-ul vostru) generaţi un | ||
+ | set de chei ssh format dintr-o cheie publică şi o cheie privată. | ||
+ | |||
+ | Pentru generarea acestor chei trebuie să folosiţi utilitarul ssh-keygen. Acesta | ||
+ | poate genera chei RSA pentru protocolul ssh1 şi chei RSA sau DSA pentru protoculul | ||
+ | ssh2. Pentru mai multe detalii consultaţi manualul. | ||
+ | |||
+ | Mai jos am generat un set de chei DSA pentru protoculul ssh2: | ||
+ | |||
+ | [radu@akira ~]$ 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 radu@akira | ||
+ | |||
+ | Dacă aţi folosit locaţia predefinită, atunci în directorul ~/.ssh veţi avea 2 | ||
+ | fişiere: | ||
+ | |||
+ | [radu@akira .ssh]$ cd .ssh; ls -l | ||
+ | -rw------- 1 radu radu 672 Dec 8 15:54 id_dsa | ||
+ | -rw-r--r-- 1 radu radu 600 Dec 8 15:54 id_dsa.pub | ||
+ | |||
+ | ;id_dsa:conţine cheia privată<br/> | ||
+ | ;id_dsa.pub: conţine cheia publică | ||
+ | |||
+ | ==Copierea cheii publice pe sistemul remote== | ||
+ | Pentru a vă putea conecta fară parolă la un sistem remote, trebuie să adaugaţi | ||
+ | cheia publică pe care aţi generat-o mai devreme pe sistemul vostru in fişierul | ||
+ | ~/.ssh/authorized_keys2 pe sistemul remote. | ||
+ | |||
+ | Mai întâi copiaţi fişierul id_dsa.pub de pe sistemul vostru pe sistemul remote: | ||
+ | [radu@akira .ssh]$ scp ~/.ssh/id_dsa.pub radu@10.10.13.1:./id_dsa.pub | ||
+ | radu@10.10.13.1's password: | ||
+ | id_dsa.pub | ||
+ | |||
+ | Fişierul id_dsa.pub va fi copiat pe sistemul remote în directorul home al | ||
+ | utilizatorului specificat. | ||
+ | |||
+ | Acum trebuie să vă logaţi (specificand parola) pe sistemul remote. Odată logat | ||
+ | crează directorul ~/.ssh şi fisierul ~/.ssh/authorized_keys2{{ref|key_file}}, dacă acestea nu | ||
+ | există deja. | ||
+ | |||
+ | [radu@kenjiru ~]$ mkdir ~/.ssh | ||
+ | [radu@kenjiru ~]$ chmod 700 ~/.ssh | ||
+ | [radu@kenjiru ~]$ touch .ssh/authorized_keys2 | ||
+ | [radu@kenjiru ~]$ chmod 600 .ssh/authorized_keys2 | ||
+ | [radu@kenjiru ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys2 | ||
+ | [radu@kenjiru ~]$ rm -f ~/id_dsa.pub | ||
+ | |||
+ | '''Atentie''': permisiunile stabilite mai sus sunt foarte importante. | ||
+ | |||
+ | In fisierul ~/.ssh/authorized_keys2 intreaga cheie publică este pe o singură linie. | ||
+ | |||
+ | ==Observaţii== | ||
+ | In exemplele din acest tutorial sunt folosite 2 maşini: | ||
+ | * ''akira'' - maşină locală | ||
+ | * ''kenjiru'' - maşină remote | ||
+ | |||
+ | Pe ambele maşini există un utilizator ''radu''. | ||
+ | |||
+ | ==Legături utile== | ||
+ | * [http://www.sshkeychain.org/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-4.html SSH with keys HOWTO] | ||
+ | * [http://www.linux360.ro/forum/ssh-rsa-dsa-vt7695.html?highlight=ssh+chei+publice Acelaşi subiect tratat pe forumul '''linux360'''] | ||
+ | * [http://www.openssh.com/manual.html Manualul OpenSSH] | ||
+ | * [http://www.ssh.com/support/documentation/all/ Documentaţia SSH2] | ||
+ | |||
+ | ==Note== | ||
+ | * {{note|parola}} nu va fi necesară introducerea parolei în cazul în care cheia privată este salvată fară specificarea unei ''fraze cheie''. Acest lucru nu este recomandat; pentru a micşora numărul de parole introduse se recomandă utilizarea programului <tt>ssh-agent</tt>. | ||
+ | * {{note|key_file}} numele fişierului <tt>authorized_keys2</tt> poate varia în funcţie de versiunea de SSH folosită (OpenSSH sau SSH2) sau configuraţia particulară de pe maşina în cauză. Pentru a verifica numele corect al fişierului, căutaţi în fişierul de configurare al server-ului de SSH opţiunea <tt>AuthorizedKeysFile</tt>. | ||
+ | |||
+ | [[Category:HowTo]] | ||
+ | [[Category:Networking]] | ||
+ | [[Category:Tips'n'Tricks]] |
Revision as of 12:44, 13 February 2006
Contents
Introducere
În continuare vă voi descrie paşii care trebuie urmaţi pentru a vă putea loga prin intermediul ssh-ului cu ajutorul unui set de chei publice/private.
Folosind această metodă de autentificare nu trebuie să mai introduceţi parola când vă logaţi pe o maşină care este configurată să accepte acest tip de conexiunenotă
.Generarea setului de chei publice/private
De pe maşina de pe care vreţi să vă logaţi (ex. desktop-ul vostru) generaţi un set de chei ssh format dintr-o cheie publică şi o cheie privată.
Pentru generarea acestor chei trebuie să folosiţi utilitarul ssh-keygen. Acesta poate genera chei RSA pentru protocolul ssh1 şi chei RSA sau DSA pentru protoculul ssh2. Pentru mai multe detalii consultaţi manualul.
Mai jos am generat un set de chei DSA pentru protoculul ssh2:
[radu@akira ~]$ 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 radu@akira
Dacă aţi folosit locaţia predefinită, atunci în directorul ~/.ssh veţi avea 2 fişiere:
[radu@akira .ssh]$ cd .ssh; ls -l -rw------- 1 radu radu 672 Dec 8 15:54 id_dsa -rw-r--r-- 1 radu radu 600 Dec 8 15:54 id_dsa.pub
- id_dsa
- conţine cheia privată
- id_dsa.pub
- conţine cheia publică
Copierea cheii publice pe sistemul remote
Pentru a vă putea conecta fară parolă la un sistem remote, trebuie să adaugaţi cheia publică pe care aţi generat-o mai devreme pe sistemul vostru in fişierul ~/.ssh/authorized_keys2 pe sistemul remote.
Mai întâi copiaţi fişierul id_dsa.pub de pe sistemul vostru pe sistemul remote:
[radu@akira .ssh]$ scp ~/.ssh/id_dsa.pub radu@10.10.13.1:./id_dsa.pub radu@10.10.13.1's password: id_dsa.pub
Fişierul id_dsa.pub va fi copiat pe sistemul remote în directorul home al utilizatorului specificat.
Acum trebuie să vă logaţi (specificand parola) pe sistemul remote. Odată logat crează directorul ~/.ssh şi fisierul ~/.ssh/authorized_keys2notă
, dacă acestea nuexistă deja.
[radu@kenjiru ~]$ mkdir ~/.ssh [radu@kenjiru ~]$ chmod 700 ~/.ssh [radu@kenjiru ~]$ touch .ssh/authorized_keys2 [radu@kenjiru ~]$ chmod 600 .ssh/authorized_keys2 [radu@kenjiru ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys2 [radu@kenjiru ~]$ rm -f ~/id_dsa.pub
Atentie: permisiunile stabilite mai sus sunt foarte importante.
In fisierul ~/.ssh/authorized_keys2 intreaga cheie publică este pe o singură linie.
Observaţii
In exemplele din acest tutorial sunt folosite 2 maşini:
- akira - maşină locală
- kenjiru - maşină remote
Pe ambele maşini există un utilizator radu.
Legături utile
Note
- (înapoi) nu va fi necesară introducerea parolei în cazul în care cheia privată este salvată fară specificarea unei fraze cheie. Acest lucru nu este recomandat; pentru a micşora numărul de parole introduse se recomandă utilizarea programului ssh-agent.
- (înapoi) numele fişierului authorized_keys2 poate varia în funcţie de versiunea de SSH folosită (OpenSSH sau SSH2) sau configuraţia particulară de pe maşina în cauză. Pentru a verifica numele corect al fişierului, căutaţi în fişierul de configurare al server-ului de SSH opţiunea AuthorizedKeysFile.