On est tous fainéant dans ce monde (les informaticiens plus quel les autres). Il est possible d’ajouter sa clé publique pour éviter d’avoir à taper son mot de passe lorsque l’on se connecte à un serveur distant. Voilà comment.
Une petite précision : si vous suivez ces informations jusqu’au bout, votre serveur ne sera accessible qu’avec votre clé publique ! Tachez d’avoir une solution de repli (pouvoir redémarrer votre serveur en mode rescue par exemple).
Tout d’abord, il vous faut un terminal (sous OSX ou Linux), puis entrez la commande suivante :
ssh-keygen -t rsa
Suivez les champs et surtout à la fin, choissez une bonne phrase pour le verrouillage de votre clé.
Dans votre dossier USER/.ssh, vous devriez avoir 2 fichiers : id_rsa et id_rsa.pub
La première clé est votre clé privée, la seconde votre clé publique. Si vous générez à nouveau ce couple de clé, vous perdrez toutes les connexions à vos serveurs.
Il faut maintenant ajouter votre clé privée au système :
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa
Une fois votre clé ajoutée au système, il ne reste plus qu’à l’ajouter à vos serveurs, un par un.
Pour chaque serveur, il faut ajouter la clé (remplacez le user et l’adresse ip)
cat ~/.ssh/id_rsa.pub | ssh user@ip "cat - >> ~/.ssh/authorized_keys"
Ensuite, il faut configurer ssh pour ne fonctionner qu’avec cette clé
nano /etc/ssh/sshd_config
Modifiez les lignes suivantes :
#PubkeyAuthentication yes PubkeyAuthentication no
PasswordAuthentication yes PasswordAuthentication no
#PermitRootLogin yes PermitRootLogin no
Vérifiez la configuration suivante
AuthorizedKeysFile .ssh/authorized_keys ChallengeResponseAuthentication yes