Autentificare ssh folosind chei publice/private
From linux360
Contents
Introducere
In 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 cand va logati pe o masina care este setata sa accepte acest tip de conexiune.
Generarea setului de chei publice/private
De pe masina de pe care vreti sa va logati (ex. desktopul vostru) generati un set de chei ssh format dintr-o cheie publica si una cheie privata.
Pentru generarea acestor chei vom folosi utilitarul ssh-keygen. Acesta poate genera chei RSA pentru protocolul ssh1 si chei RSA si DSA pentru protoculul ssh2. Pentru mai multe detalii consultati 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
Daca ati folosit locatia predefinita, atunci in directorul ~/.ssh veti avea 2 fisiere:
[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 contine cheia privata
id_dsa.pub contine cheia publica
Copierea cheii publice pe serverul remote
Pentru a ne putea conecta fara parola la un sistem remote, trebuie sa adaugam cheia publica pe care am generat-o mai devreme pe sistemul nostru in fisierul ~/.ssh/authorized_keys2 de pe serverul remote.
Mai intai copiem fisierul id_dsa.pub de pe sistemul nostru 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
Fisierul id_dsa.pub va fi copiat pe sistemul remote in directorul home al utilizatorului specificat.
Acum trebuie sa ne logam (specificand parola) pe sistemul remote. Apoi cream directorul ~/.ssh si fisierul ~/.ssh/authorized_keys2, daca acestea nu exista deja.
[radu@kenjiru ~]$ mkdir .ssh [radu@kenjiru ~]$ touch .ssh/authorized_keys2 [radu@kenjiru ~]$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys [radu@kenjiru ~]$ rm -f ~/id_dsa.pub
In fisierul ~/.ssh/authorized_keys intreaga cheie publica este pe o singura linie.
Observatii
In exemplele din acest tutorial sunt prezente 2 masini:
- akira - masina locala
- kenjiru - masina remote
Pe ambele masini exista un utilizator radu.
Legaturi utile
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