Comment créer des clés SSH avec OpenSSH sur macOS, Linux ou le sous-système Windows pour Linux
Introduction
Lors de la configuration d’un serveur Linux distant, vous devrez choisir une méthode pour vous y connecter en toute sécurité. Bien que les mots de passe soient un moyen de vérifier l’identité d’un utilisateur, ils présentent de multiples vulnérabilités et peuvent être piratés par une attaque par force brute. Les clés Shsécurisées Shell, mieux connues sous le nom de clés SSH, sont souvent utilisées à la place des mots de passe, car elles offrent une méthode plus sécurisée de connexion à serveurs Linux distants. Dans le cadre du protocole réseau cryptographique Secure Shell, les clés SSH permettent également aux utilisateurs d'exécuter en toute sécurité des services réseau sur un réseau non sécurisé, comme la transmission de commandes textuelles à un serveur distant ou la configuration de ses services.
Ce didacticiel vous guidera à travers les étapes de création de clés SSH avec OpenSSH, une suite d'outils SSH open source, sur macOS et Linux, ainsi que sur Windows grâce à l'utilisation du sous-système Windows pour Linux. Il est écrit pour un public qui débute tout juste avec la ligne de commande et fournira des conseils pour accéder au terminal sur un ordinateur personnel. Après avoir terminé ce didacticiel, vous disposerez de clés SSH qui pourront être utilisées pour configurer un serveur en toute sécurité dans le didacticiel Comment configurer un serveur Ubuntu sur un droplet DigitalOcean qui fait partie de l'introduction au programme Cloud.
Si vous êtes déjà familier avec la ligne de commande et recherchez des instructions sur l'utilisation de SSH pour vous connecter à un serveur distant, veuillez consulter notre collection de didacticiels sur la configuration des clés SSH pour une gamme de systèmes d'exploitation Linux.
Comment créer des clés SSH avec OpenSSH sur macOS, Linux ou le sous-système Windows pour Linux
- Comprendre les clés SSH
- Ouverture d'un terminal sur votre ordinateur
- Générer des clés avec OpenSSH
Conditions préalables
Pour réaliser ce tutoriel, vous aurez besoin de :
- Une machine locale exécutant l'un des systèmes d'exploitation suivants : macOS, Linux ou Windows avec le sous-système Windows pour Linux installé. Si vous utilisez Windows, vous pouvez trouver des instructions pour télécharger ou mettre à jour le sous-système Windows pour Linux sur la page de documentation de Microsoft. Notez que même si OpenSSH devrait fonctionner pour une gamme de distributions Linux, ce didacticiel a été testé avec Ubuntu.
Remarque : Si vous recherchez des instructions sur la façon de créer des clés SSH sur une machine Windows qui ne dispose pas du sous-système Windows pour Linux, veuillez consulter notre documentation produit Comment créer des clés SSH avec PuTTY sous Windows.
- Une certaine familiarité avec le travail avec un terminal et la ligne de commande. Si vous avez besoin d'une introduction à l'utilisation des terminaux et de la ligne de commande, vous pouvez consulter notre guide A Linux Command Line Primer.
Étape 1 — Comprendre les clés SSH
Les clés SSH sont deux longues chaînes de caractères qui peuvent être utilisées pour authentifier l'identité d'un utilisateur demandant l'accès à un serveur distant. L'utilisateur génère ces clés sur son ordinateur local à l'aide d'un utilitaire SSH. Une clé est privée et stockée sur la machine locale de l’utilisateur. L'autre clé est publique et partagée avec le serveur distant ou toute autre entité avec laquelle l'utilisateur souhaite communiquer en toute sécurité.
Lorsqu'un utilisateur demande à se connecter à un serveur avec SSH, le serveur envoie un message chiffré avec la clé publique qui ne peut être déchiffré que par la clé privée associée. La machine locale de l’utilisateur utilise ensuite sa clé privée pour tenter de déchiffrer le message. Si le message est déchiffré avec succès, le serveur accorde l'accès à l'utilisateur sans avoir besoin d'un mot de passe. Une fois authentifiés, les utilisateurs peuvent lancer une session shell à distance dans leur terminal local pour transmettre des commandes textuelles au serveur distant.
Dans l'étape suivante, vous ouvrirez un terminal sur votre ordinateur afin de pouvoir accéder à l'utilitaire SSH utilisé pour générer une paire de clés SSH.
Étape 2 - Ouverture d'un terminal sur votre ordinateur
Un terminal vous permet d'interagir avec votre ordinateur via des commandes textuelles plutôt qu'une interface utilisateur graphique. La manière dont vous accédez au terminal sur votre ordinateur dépend du type de système d'exploitation que vous utilisez.
Sur les machines exécutant macOS, l'application Terminal se trouve généralement dans le dossier Utilitaires du dossier Applications. Vous pouvez également le trouver en recherchant « terminal » dans la Recherche Spotlight.
Si vous travaillez sur un ordinateur Linux, l'application de terminal par défaut de votre distribution se trouve également généralement dans le dossier Utilities
à l'intérieur du dossier Applications
. Vous pouvez également le trouver en recherchant « terminal » avec la fonctionnalité de recherche du bureau.
Si vous travaillez sur une machine Windows exécutant le sous-système Windows pour Linux, un terminal Linux devrait s'ouvrir immédiatement après l'installation. Vous pouvez également le trouver en recherchant « Ubuntu » avec la fonctionnalité de recherche du bureau.
Une fois que vous avez localisé l’application de terminal de votre système, ouvrez une nouvelle fenêtre de terminal. Votre terminal doit afficher votre nom d'utilisateur, un signe dollar ($
) et un curseur. C'est ici que vous commencerez à taper des commandes pour indiquer au terminal quoi faire.
À l'étape suivante, vous entrerez une commande textuelle pour générer une paire de clés SSH.
Étape 3 — Générer des clés avec OpenSSH
Votre système d'exploitation macOS ou Linux devrait déjà avoir installé la suite d'outils OpenSSH standard. Cette suite comprend l'utilitaire ssh-keygen,
que vous utiliserez pour générer une paire de clés SSH.
Tapez la commande suivante dans votre terminal :
ssh-keygen
Vous serez ensuite invité à sélectionner un emplacement pour les clés. Par défaut, les clés sont stockées dans le répertoire ~/.ssh
avec les noms de fichiers id_rsa
pour la clé privée et id_rsa.pub
pour la clé publique. clé. L'utilisation des emplacements par défaut permet à votre client SSH de trouver automatiquement vos clés SSH lors de l'authentification. Nous vous recommandons donc d'accepter ces options par défaut. Pour ce faire, appuyez sur ENTER
:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
<$>[avertissement] Avertissement : Si vous avez déjà généré une paire de clés, vous serez invité à confirmer que vous souhaitez réellement écraser la clé existante :
/home/sammy/.ssh/id_rsa already exists.
Overwrite (y/n)?
Si vous choisissez d'écraser la clé sur le disque, vous ne pourrez plus vous authentifier avec la clé précédente. Choisir « oui » est un processus destructeur irréversible.
Si vous êtes certain de vouloir écraser la clé existante sur le disque, vous pouvez le faire en appuyant sur Y
puis sur ENTER
. <$>
Si vous choisissez l'emplacement par défaut, votre clé publique sera située dans /home/sammy/.ssh/id_rsa.pub
et votre clé privée sera située dans /home/sammy/.ssh/id_rsa
. Notez que dans votre chemin de fichier, `sammie sera remplacé par votre nom d'utilisateur.
Après avoir sélectionné un emplacement pour la clé, vous serez invité à saisir une phrase secrète facultative qui crypte le fichier de clé privée sur le disque.
Si vous saisissez une phrase secrète, vous devrez la fournir à chaque fois que vous utiliserez cette clé (sauf si vous exécutez un logiciel agent SSH qui stocke la clé déchiffrée). Nous vous recommandons d'utiliser une phrase secrète, mais vous pouvez simplement appuyer sur ENTER
pour contourner cette invite :
Created directory '/home/sammy/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Suite à cette dernière invite, votre système générera la paire de clés SSH :
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 sammy@203.0.113.0
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+-----------------+
Vous disposez désormais d’une clé publique et privée que vous pouvez utiliser pour vous authentifier.
Conclusion
Félicitations, vous avez maintenant généré une paire de clés SSH. Ces clés peuvent être utilisées pour se connecter en toute sécurité à un serveur distant et sont nécessaires pour le didacticiel Comment configurer un serveur Ubuntu sur un droplet DigitalOcean qui suit ce didacticiel dans l'introduction au programme Cloud.
Pour en savoir plus sur l'utilisation de SSH, veuillez consulter notre guide SSH Essentials : Travailler avec des serveurs, des clients et des clés SSH.