Authentification par clés SSH

Maintenant que nous avons créé nos clés SSH, nous allons voir comment les utiliser afin d’utiliser l’authentification par clés SSH.

Pour rappel, l’authentification par clés SSH est régie par 3 composantes :

  • clé publique : c’est la clé que l’on partage avec les hôtes;
  • clé privée : c’est la clé qui doit resté confidentielle;
  • passphrase : le « mot de passe » qui sécurise notre clé privée.

Nous allons donc, dans un premier temps, fournir notre clé publique aux hôtes sur lesquels nous désirons nous authentifier.

Renseigner sa clé publique

L’authentification s’effectue sur une machine hôte pour un utilisateur donné.

Les clés publiques sont stockés dans le fichier ~/.ssh/authorized_keys.

On se connecte donc sur le serveur à « l’ancienne », c’est à dire en ssh par mot de passe:

puis on va éditer le fichier authorized_keys pour y ajouter notre clé publique:

On copie-colle enfin l’ensemble de notre clé publique à la fin de ce fichier. Il est tout à fait possible qu’il soit vide (voir même qu’on soit en train de le créer).

On enregistre (Ctrl + O) et on quitte (Ctrl + X) nano.

Ok, c’est beau ! Mais comment je récupère ma clé publique ?

Récupérer sa clé publique sous Linux

Comme nous l’avons vu dans le précédent article, sous linux, les clés sont généralement enregistrées dans les fichiers id_rsa (clé privée) et id_rsa.pub (clé publique).

Il suffit donc de lire le fichier ~/.ssh/id_rsa.pub pour récupérer sa clé publique sous linux :

Récupérer sa clé publique sous Windows

Sous Windows, les choses sont un peu plus fastidieuse…

Il faudra à nouveau utiliser le logiciel PuTTYgen pour extraire notre clé publique de la clé privée que nous avons précédemment générée.

  1. Ouvrir le logiciel PuTTYgen, cliquez sur le bouton « Load » et sélectionnez la clé privée :

    PuTTYgen : charger une clé privée
    PuTTYgen : charger une clé privée
  2. Renseigner la passphrase :

    PuTTYgen : renseignement de la passphrase
    PuTTYgen : renseignement de la passphrase
  3. Récupérer la clé publique associée à la clé privée :

    PuTTYgen : récupérer la clé publique
    PuTTYgen : récupérer la clé publique

Il ne reste plus qu’à coller notre clé publique dans le fichier ~/.ssh/authorized_keys de notre hôte distant.

Sous linux : se faciliter la vie

Sous linux il est tout à fait possible de grandement se faciliter la vie grâce à une seule ligne de commande qui s’occupe tout seule de récupérer votre clé publique et de l’ajouter à la liste des clés autorisées d’un hôte distant :

Un message vous indiquera probablement que l’identité du serveur hôte est actuellement inconnue et vous demandera si vous désirez poursuivre : répondez « yes ».

Pour finir, il faudra renseigner le mot de passe de l’utilisateur distant.

La sortie finale de la commande devrait ressembler à peu de choses près cela :

Et voilà, vous êtes maintenant prêt à utiliser l’authentification par clés SSH pour vous connecter à un serveur distant.

Générer des clés SSH sous Linux et Windows

L’utilisation de clés SSH est un moyen de s’authentifier de manière sécurisée. Nous allons voir ensemble comment générer des clés SSH à la fois sous Linux et également sous Windows.

L’authentification SSH s’effectue au travers de 3 composants :

  • Une clé publique : elle sera transmise aux différents hôtes sur lesquels on désire s’authentifier;
  • une clé privée : elle permet de prouver son identité aux hôtes sur lesquels on s’authentifie;
  • une passphrase : elle permet de sécuriser sa clé privée.

Sans ces 3 éléments, il est impossible de s’authentifier.

Générer des clés SSH sous linux

La génération de clés SSH sous linux est relativement simple puisqu’elle s’effectue avec une seule commande :

Sans paramètre, la clé générée sera de type RSA en 2048 bits.

Nous voulons créer une clé en 4096 bits, nous utilisons la commande suivante :

Suite à cette commande, nous obtenons une sortie similaire à la suivante :

Bien sûr, nous avons pris soin de répondre aux questions posées, à savoir le nom du fichier dans lequel enregistrer les clés (2 fichiers sont créés : id_rsa contient la clé privée, id_rsa.pub contient la clé publique), ainsi que la passphrase permettant de sécuriser la clé privée.

Par défaut, les fichiers sont enregistrés dans ~/.ssh.

Générer des clés SSH sous Windows

Sous Windows, nous utiliserons le logiciel PuTTYgen. Pour le télécharger, il suffit de se rendre sur le site officiel ici.
Nul besoin d’installation, le fichier téléchargé est directement utilisable.

Double-cliquez dessus pour lancer l’application (Windows peut vous assurer qu’il a bloqué l’application pour votre sécurité : n’en faites rien, le logiciel est sûr et vous pouvez valider son lancement).

PuTTYgen : générer des clés SSH sous Windows
Interface PuTTYgen

Tout comme sous linux, le chiffrement par défaut est réalisé sous 2048 bits. Nous changeons cette valeur pour qu’elle soit de 4096 bits :

PuTTYgen : 4096 bits
PuTTYgen : 4096 bits

Puis nous cliquons sur le bouton « Generate« .

Il nous est alors demandé de bouger la souris à l’intérieur du cadre vide afin de générer un peu de hasard !

Lorsque la clé privée est générée, il faut la sécuriser en renseignant une passphrase :

PuTTYgen : passphrase
PuTTYgen : passphrase

Vous pouvez maintenant enregistrer la clé privée dans le fichier de votre choix.

Nous verrons dans un prochain article comment utiliser ces clés pour s’authentifier sur un serveur distant.