Identification SSH sans mot de passe
Bruno Travouillon » mardi 13 mai 2008 22:36
GNU/Linux
|
Fil des commentaires de ce billet
URL de rétrolien : http://blog.travouillon.fr/index.php?trackback/3
SSH, ou Secure SHell, est un protocole de communication permettant d'établir une connexion sécurisée entre deux hôtes grâce à des clefs de chiffrement. Dans le monde Unix, il est d’usage d’ouvrir des sessions distantes à travers ce protocole afin de chiffrer les échanges entre le client et le système hôte.
Afin de sécuriser le processus d’identification, il convient d’utiliser une paire de clefs privée/publique permettant à un client de s’authentifier sur le serveur sans avoir à saisir le moindre mot de passe.
Pour notre exemple, nous avons besoin d’un compte utilisateur, d’un serveur SSH et d’un client.
Nous souhaitons utiliser le compte bruno sur la machine distante. Le serveur utilisé est sshd sur la machine procyon.projet747.org. Le client est ssh sur la machine actarus.projet747.org.
Tout d’abord, nous générons la paire de clefs sur la machine cliente. L’argument -t permet de spécifier le niveau de cryptage des clefs, nous optons ici pour DSA.
bruno@actarus:~$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/bruno/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/bruno/.ssh/id_dsa. Your public key has been saved in /home/bruno/.ssh/id_dsa.pub. The key fingerprint is: 2c:dc:8f:4d:05:00:86:d2:7b:09:f0:2b:6f:4b:b9:70 bruno@actarus
La clef privée est générée par défaut dans le fichier $HOME/.ssh/id_dsa, et la clef publique dans le fichier $HOME/.ssh/id_dsa.pub. Nous n’avons pas saisi de passphrase.
Nous devons maintenant copier notre clef publique sur le serveur procyon.projet747.org. Évidemment, comme notre clef publique n’est pas encore installée, nous devons saisir le mot de passe du compte bruno sur la machine procyon.projet747.org.
bruno@actarus:~$ scp .ssh/id_dsa.pub \ bruno@procyon.projet747.org:.ssh/temp_dsa.pub Password: id_dsa.pub 100% 602 0.6KB/s 00:00 bruno@actarus:~$ ssh bruno@procyon.projet747.org Password: bruno@procyon:~$ cat .ssh/temp_dsa.pub >> .ssh/authorized_keys bruno@procyon:~$ rm .ssh/temp_dsa.pub
La version courte se trouve ci-dessous :
bruno@actarus:~$ cat .ssh/id_dsa.pub | ssh bruno@procyon.projet747.org \ "cat - >> .ssh/authorized_keys"
Lors de la prochaine connexion à l’hôte procyon.projet747.org, aucun mot de passe ne sera demandé.