Installer sa clé SSH sur un serveur distant

De GeRgOsNet.

Qui n'a jamais pesté d'avoir à constamment taper et se souvenir de dizaines de mots de passe, quand on utilise plusieurs serveurs différents ? Moi, en tous cas.

Le principe est simple : générer une clé privée et une clé publique, toutes deux cryptées, et d'ajouter votre clé publique à la liste des clés autorisées du serveur distant afin de permettre l'authentification automatique sur ce dernier. Ainsi, vous pouvez définir une seule et même passphrase (mot de passe) pour vous logguer à toutes vos machines

Voici la procédure : d'abord - et si ce n'est déjà fait - il vous faut installer le client openSSH :


$ sudo apt-get update 
$ sudo apt-get install openssh-client 


Il faudra de même disposer de ssh-server sur la machine distante.

Ceci fait, il vous faut générer vos clés publiques et privées :


$ ssh-keygen -t dsa -b 1024 
Generating public/private dsa key pair. 


Là, il vous faut répondre à une petite série de questions :


Enter file in which to save the key (/home/monlogin/.ssh/id_dsa): 


Appuyez sur Entrée, vos clés seront sauvegardées dans le repertoire caché .ssh.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 


Une fois votre passphrase entrée, un message de confirmation de création est affiché :


Your identification has been saved in /home/monlogin/.ssh/id_dsa. 
Your public key has been saved in /home/monlogin/.ssh/id_dsa.pub. 
The key fingerprint is: 
XX:8a:XX:91:XX:ae:XX:23:XX:2e:XX:ed:XX:4e:XX:b8 monlogin@mamachine  


Ensuite, il vous faut ajouter votre clé publique à la liste des clés autorisées du serveur distant. En admettant que votre serveur se nomme toto.host.org et que votre nom d'utilisateur est titi [1], cela donne :


$ ssh-copy-id -i ~/.ssh/id_dsa.pub titi@toto.host.org 
Password: 


Entrez le mot de passe de l'utilisateur titi sur la machine distante. Si l'opération d'ajout de votre clé a réussi, un message est affiché :

Now try logging into the machine, with "ssh 'titi@toto.host.org'", and check in: 
 .ssh/authorized_keys 
to make sure we haven't added extra keys that you weren't expecting. 


Et voila, il ne vous reste plus qu'à lancer un ssh titi@toto.host.org, il vous sera demandé votre passphrase et vous serez loggué

$ ssh titi@toto.host.org 
Enter passphrase for key '/home/monlogin/.ssh/id_dsa': 

Si port SSH différent de 22 :

ssh-copy-id -i ~/.ssh/id_rsa.pub « -p 2222 user@host »


Elle est pas belle, la vie ?

Outils personnels