Installer sa clé publique sur son serveur Linux

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