Picture

Samuel's Website

Échange clés SSH Client / Serveur Linux

Samuel Forestier — 14 April 2015
Il est parfois très pénible de devoir toujours retaper son mot de passe lors d'une connexion récurrente à un serveur distant en SSH.

Pour cela il existe plusieurs méthodes concernant un échange de clés Publiques / Privées afin d'assurer des connexions immédiates entre périphériques reconnus.

Avant de commencer, je vous propose de créer un alias de votre serveur à l'aide des noms d'hôtes, en ouvrant:
# nano /etc/hosts
... et en y insérant:
IP_SERVEUR ALIAS

Passons maintenant à la génération et à l'envoi de la clé, côté Client :
$ ssh-keygen -t rsa -b 2048
$ ssh-copy-id -i /home/$USER/.ssh/id_rsa.pub USER@ALIAS
La procédure vous demandera la saisie de votre 'passphrase', si vous en aviez choisi une.
Ensuite (si vous avez rentré une passphrase) :
$ exec ssh-agent bash && ssh-add
/!\ L'agent SSH ne retiendra votre passphrase servant à déchiffrer la clé seulement pour la session en cours. Si jamais le système doit rebooter, la dernière procédure est à reprendre /!\
Le Serveur et le Client maintenant se reconnaissent mutuellement. Essayons de nous connecter sans aucune information nécessaire :
$ ssh USER@ALIAS

Vous pouvez également empêcher la lecture de votre clé privée en autorisant son accès uniquement depuis la session root par un :
# chmod 700 ~/.shh/id_dsa