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 se reconnaissent maintenant mutuellement.
Essayons de nous connecter sans aucune_information supplémentaire :
$ 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