Mise en place de la connexion par clé SSH

SSH est capable de gérer plusieurs méthodes d'authentifications, les plus utilisées sont les mots de passe et l'authentification par clé publique.

Cette authentification vous permet de vous connecter à un serveur en utilisant un certificat, et donc plus besoin de vous connecter avec vos noms d'utilisateurs et mots de passe, ce qui est très pratique si par exemple vous avez plusieurs serveurs à gérer, ce qui est mon cas !

Les clés publiques sont stockées dans /home/username/.ssh normalement si une installation vierge, vous n'avez aucune clé publique dans ce dossier, nous allons donc commencer par en générer une avec la commande suivante.

ssh-keygen -t rsa -b 4096 -C "votre@mail.com"

Il vous sera demandé ou vous souhaitez sauvegarder votre paire de clé, vous pouvez laisser le chemin par défaut (~/.ssh), vous aurez également la possibilité de choisir un mot de passe pour votre clé, ce qui est évidemment recommandé pour des questions de sécurité, en effet, si vous laissez votre certificat sur une clé usb et que celle-ci est retrouvée, quelqu'un pourrait avoir accès a votre serveur, sans mot de passe.

Votre paire de clé est maintenant crée ! :)

Maintenant, il ne nous reste plus qu'a copier notre clé publique sur notre serveur !

Si vous utilisez déjà Linux ou MacOS, vous pouvez envoyer directement votre clé sur votre serveur grace à ssh-copy-id avec la commande suivante:

ssh-copy-id user@server.com

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys nrousse@knl.im's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'user@kserver'" and check to make sure that only the key(s) you wanted were added.

Si vous avez reçu ce message, votre clé a bien été copiée sur votre serveur ! Vous pouvez donc désormais vous connecter à votre serveur sans avoir besoin d'entrer vos identifiants, ou au moins, juste le mot de passe du certificat ! :)

Vous pouvez bien entendu répéter la procédure de copie vers chacun de vos serveurs, et utiliser la même clé à chaque fois, pensez à bien garder un backup de cette clé, et si vous devez la sauvegarder en ligne, sur un cloud par exemple, pensez bien à protéger cette clé par un mot de passe solide :)