Personal tools

Difference between revisions of "Autentificare ssh folosind chei publice/private"

From linux360

Jump to: navigation, search
(adaugarea categoriilor)
m
 
(14 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
==Introducere==
 
==Introducere==
In continuare va voi descrie pasii care trebuie urmati pentru a va putea
+
În continuare voi descrie paşii care trebuie urmaţi pentru a putea
 
loga prin intermediul ssh-ului cu ajutorul unui set de chei publice/private.
 
loga prin intermediul ssh-ului cu ajutorul unui set de chei publice/private.
  
Folosind aceasta metoda de autentificare nu trebuie sa mai introduceti parola
+
Folosind această metodă de autentificare nu trebuie mai introduceţi parola
cand va logati pe o masina care este setata sa accepte acest tip de conexiune.
+
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==
 
==Generarea setului de chei publice/private==
De pe masina de pe care vreti sa va logati (ex. desktopul vostru) generati un
+
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 publica si una cheie privata.
+
set de chei ssh format dintr-o cheie publică şi o cheie privată.
  
Pentru generarea acestor chei vom folosi utilitarul ssh-keygen. Acesta poate  
+
Pentru generarea acestor chei trebuie să folosiţi utilitarul ssh-keygen. Acesta  
genera chei RSA pentru protocolul ssh1 si chei RSA si DSA pentru protoculul ssh2.  
+
poate genera chei RSA pentru protocolul ssh1 şi chei RSA sau DSA pentru protoculul  
Pentru mai multe detalii consultati manualul.
+
ssh2. Pentru mai multe detalii consultaţi manualul.
  
 
Mai jos am generat un set de chei DSA pentru protoculul ssh2:
 
Mai jos am generat un set de chei DSA pentru protoculul ssh2:
Line 26: Line 26:
 
  72:8c:1f:32:89:d5:76:63:d9:36:56:6d:bf:e8:3c:10 radu@akira
 
  72:8c:1f:32:89:d5:76:63:d9:36:56:6d:bf:e8:3c:10 radu@akira
  
Daca ati folosit locatia predefinita, atunci in directorul ~/.ssh veti avea 2  
+
Dacă aţi folosit locaţia predefinită, atunci în directorul ~/.ssh veţi avea 2  
fisiere:
+
fişiere:
  
 
  [radu@akira .ssh]$ cd .ssh; ls -l
 
  [radu@akira .ssh]$ cd .ssh; ls -l
Line 33: Line 33:
 
  -rw-r--r--  1 radu radu 600 Dec  8 15:54 id_dsa.pub
 
  -rw-r--r--  1 radu radu 600 Dec  8 15:54 id_dsa.pub
  
''id_dsa'' contine cheia privata<br/>
+
;id_dsa:conţine cheia privată<br/>
''id_dsa.pub'' contine cheia publica
+
;id_dsa.pub: conţine cheia publică
  
==Copierea cheii publice pe serverul remote==
+
==Copierea cheii publice pe sistemul remote==
Pentru a ne putea conecta fara parola la un sistem remote, trebuie sa adaugam
+
Pentru a putea conecta fară parolă la un sistem remote, trebuie să adaugaţi
cheia publica pe care am generat-o mai devreme pe sistemul nostru in fisierul
+
cheia publică pe care aţi generat-o mai devreme pe sistemul vostru in fişierul
~/.ssh/authorized_keys2 de pe serverul remote.
+
~/.ssh/authorized_keys2 pe sistemul remote.
  
Mai intai copiem fisierul id_dsa.pub de pe sistemul nostru 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@akira .ssh]$ scp ~/.ssh/id_dsa.pub radu@kenjiru:./id_dsa.pub
  radu@10.10.13.1's password:
+
  radu@kenjiru's password:
 
  id_dsa.pub
 
  id_dsa.pub
  
Fisierul id_dsa.pub va fi copiat pe sistemul remote in directorul home al  
+
Fişierul id_dsa.pub va fi copiat pe sistemul remote în directorul home al  
 
utilizatorului specificat.
 
utilizatorului specificat.
  
Acum trebuie sa ne logam (specificand parola) pe sistemul remote. Apoi cream
+
Acum trebuie să vă logaţi (specificand parola) pe sistemul remote. Odată logat
directorul ~/.ssh si fisierul ~/.ssh/authorized_keys2, daca acestea nu exista
+
crează directorul ~/.ssh şi fisierul ~/.ssh/authorized_keys2{{ref|key_file}}, dacă acestea nu există deja.
deja.
 
  
  [radu@kenjiru ~]$ mkdir .ssh
+
  [radu@kenjiru ~]$ mkdir ~/.ssh
 +
[radu@kenjiru ~]$ chmod 700 ~/.ssh
 
  [radu@kenjiru ~]$ touch .ssh/authorized_keys2
 
  [radu@kenjiru ~]$ touch .ssh/authorized_keys2
  [radu@kenjiru ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
+
[radu@kenjiru ~]$ chmod 600 .ssh/authorized_keys2
 +
  [radu@kenjiru ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys2
 
  [radu@kenjiru ~]$ rm -f ~/id_dsa.pub
 
  [radu@kenjiru ~]$ rm -f ~/id_dsa.pub
  
In fisierul ~/.ssh/authorized_keys intreaga cheie publica este pe o singura linie.
+
'''Atentie''': permisiunile stabilite mai sus sunt foarte importante.
  
==Observatii==
+
In fisierul ~/.ssh/authorized_keys2 intreaga cheie publică este pe o singură linie.
In exemplele din acest tutorial sunt prezente 2 masini:
 
* ''akira'' - masina locala
 
* ''kenjiru'' - masina remote
 
  
Pe ambele masini exista un utilizator ''radu''.
+
==Observaţii==
 +
In exemplele din acest tutorial sunt folosite 2 maşini:
 +
* ''akira'' - maşină locală
 +
* ''kenjiru'' - maşină remote
  
==Legaturi utile==
+
Pe ambele maşini există un utilizator ''radu''.
http://www.sshkeychain.org/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-4.html
+
 
http://www.linux360.ro/forum/ssh-rsa-dsa-vt7695.html?highlight=ssh+chei+publice
+
==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:HowTo]]
[[Category:SSH]]
 
 
[[Category:Networking]]
 
[[Category:Networking]]
 
[[Category:Tips'n'Tricks]]
 
[[Category:Tips'n'Tricks]]

Latest revision as of 17:56, 16 October 2006

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@kenjiru:./id_dsa.pub
radu@kenjiru'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 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

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.