Les clés SSH sont des éléments cryptographiques utilisés pour chiffrer et déchiffrer des communications entre deux machines distantes au travers du protocole  Secure SHell.

Chaque ensemble est toujours composé de deux clés distinctes :  la clé publique et la clé privée, on parle donc couramment d'une "paire de clés".

Pourquoi créer une paire de clé SSH

Dans le cas d'un client et d'un serveur, on donne au serveur la clé publique, et le client conserve la clé privée.

De cette manière, même si la clé publique est interceptée, les informations encodées avec cette dernière ne pourraient pas être décodées, car cela requiert la clé privée.

La majorité des fournisseurs d'hébergement (type VPS, dédié, etc...), ainsi que d'autres services en ligne demandent aux utilisateur de fournir leurs clés, afin de pouvoir s'authentifier lors de la connexion SSH.

Générer une paire de clés SSH avec PuTTYgen

Le logiciel PuTTY est un client SSH permettant de se connecter à une machine distante, grâce à une interface graphique assez simple. L'avantage de PuTTY est qu'il est open-source et même s'il a été créé pour Windows, il est également disponible sur Linux et MacOS.

Mais le deuxième avantage de ce logiciel, est qu'il vient avec une petite suite d'utilitaires, dont le logiciel PuTTYgen.

Comme son nom l'indique, PuTTYgen va vous permettre de générer des paires de clés SSH très facilement ! Nous allons voir comment faire.

Installer Putty et PuTTYgen

Pour MacOS, il vous suffit de passer par HomeBrew (plus d'informations ici) :

brew install putty

Pour Linux, vous pouvez utiliser APT avec les distributions compatibles (plus d'informations ici) :

apt-get install putty putty-tools

Et sous Windows il vous suffit de vous rendre sur le site officiel : https://www.putty.org/, de télécharger et d'exécuter l'installateur fourni.

Créer une paire de clés

La première étape est de lancer puttygen(.exe), qui se trouve dans le même dossier que l'exécutable de Putty. Vous devriez voir apparaitre l'interface ci-dessous :

Ensuite, il vous suffira de cliquer sur le bouton "Generate" et de bouger votre souris dans l'espace blanc intitulé "Key" pour générer des données aléatoires dont le logiciel a besoin pour créer la clé SSH.

En bougeant votre souris, vous générez de l'entropie. Si vous n'êtes pas familier avec le concept d'aléatoire en informatique, lisez mon article à ce sujet.

À la fin de l'opération, vous devriez voir la clé publique apparaitre dans l'encart comme ci-dessous :

Si vous souhaitez protéger votre clé privée par un mot de passe (recommandé), il faudra ensuite remplir les champs "Key passphrase" et "Confirm passphrase".

Il ne vous restera plus qu'à cliquez sur les boutons "Save public key" et "Save private key" afin de sauvegarder la paire de clés dans deux fichiers distincts !

Alternative : Générer une paire de clés SSH directement dans le terminal

Si vous êtes sous Linux, Mac, ou que vous utilisez un terminal compatible Unix sous Windows, il vous est possible d'utiliser un utilitaire déjà présent, appelé ssh-keygen.

Pour générer une paire de clé, il vous suffira d'exécuter la commande suivante :

ssh-keygen

Puis de répondre aux questions posées par l'outil (fichier, mot de passe,...) et vous pourrez générer une clé SSH en un rien de temps, sans rien installer !

J'espère que cet article vous aura été utile, et à bientôt sur le blog !

Les articles les plus populaires du blog

Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !

Voir la sélection 🚀

Recevez les articles de la semaine par e-mail pour ne rien manquer !

S'abonner à la newsletter 📧

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.

Aujourd'hui je suis aussi formateur pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Chunli Ju sur Unsplash