Connexion SSH à l’aide d’une clé publique#

Vous en avez marre de taper à chaque fois votre mot de passe lorsque vous vous connectez en SSH avec votre ordinateur personnel ?

Ce tuto est fait pour vous ! 👈️

Warning

Ce tutoriel n’a pas encore beaucoup été éprouvé. (C’est encore un bébé !) Les choses peuvent donc être différentes sur votre appareil.

🛟 En cas de blocage, on vous invite à demander de l’aide. En plus de vous débloquer, cela pourra aider à enrichir ce tutoriel ! 😉

Création de la paire de clés#

L’authentification par clé publique nécessite une paire de clé de chiffrement. Pour créer ces clés, on utilise la commande ci-dessous.

ssh-keygen -t ed25519

Ensuite, le terminal devrait afficher un truc du genre :

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/LOCAL_USER/.ssh/id_ed25519):

La première ligne nous confirme que c’est bien une “paire de clé” qui est crée. La seconde ligne nous demande de choisir l’emplacement de cette paire. Ici LOCAL_USER devrait correspondre à votre nom d’utilisateur local, qui n’est pas forcément le même que celui sur le serveur CLUB1. Entre parenthèse, on voit l’emplacement par défaut qui est suggéré : à l’intérieur du dossier caché .ssh. On vous conseille d’accepter cette proposition en appuyant sur entrée.

Enter passphrase (empty for no passphrase): 

Qu’est ce que c’est que ça une passphrase ? je croyais qu’on n’allait plus avoir de mot de passe à taper ? 🫤

Une phrase de passe, c’est en fait exactement la même chose qu’un mot de passe. C’est surtout une façon d’encourager à ce qu’elle soit plus longue et donc plus sécurisée.

Sur Linux, les clés seront automatiquement déverrouillées lors de l’ouverture d’une session, il ne faut donc pas hésiter à choisir une longue phrase de passe !

Attention

Lorsque vous tapez votre phrase de passe, rien ne s’affiche ! C’est normal, il s’agit d’une mesure de sécurité qui permet de ne même pas révéler le nombre de caractères du mot de passe. 🤫

Enter same passphrase again:

Bon, ça c’est simplement pour vérifier que vous ne vous êtes pas trompé en tapant au clavier.

Si tout c’est bien passé, on devrait ensuite recevoir les messages suivant :

Your identification has been saved in /home/LOCAL_USER/.ssh/id_ed25519
Your public key has been saved in /home/LOCAL_USER/.ssh/id_ed25519.pub

Les deux clés ont été chacunes stockées dans un fichier séparé. L’identification c’est ce qu’on appelle la clé privée. On remarque que le nom des fichiers est très proche, la clé publique est ralongée avec .pub. (Pour public, et non pas pour publicité 😅)

The key fingerprint is:
SHA256:S6ilDqI7pr/kIPJ27AxqZGfTiZ1IarO47ZdmieFqzj8 LOCAL_USER@LOCAL_PC

Ça c’est l’empreinte digitale de la clé.

The key's randomart image is:
+--[ED25519 256]--+
|                 |
|                 |
|                 |
|   .   .         |
|  o = = S        |
| *.* O . .       |
|X.O++o  .        |
|B&+EO            |
|&@OO=            |
+----[SHA256]-----+

Pour nous récompenser de notre dur labeur, on reçoit cette magnifique image. Ça valait le coup !

Envoi de la clé publique sur le serveur#

The command thereafter then effortlessly sends the public part of the key to the server to be able to use it as an authentication method (replace USER with your CLUB1 login). It will ask you to enter you CLUB1 password to work.

ssh-copy-id -i ~/.ssh/id_ed25519 USER@club1.fr

Connexion au serveur#

Finally, we use the same command again to connect. But this time it’s the keys that will be used. If they are not already unlocked, the passphrase will be prompted.

ssh USER@club1.fr