Il est facile de créer une paire de clés SSH sous Ubuntu, en passant par le terminal. Il vous suffit ensuite de trans­fé­rer la clé publique à votre serveur, puis de profiter de la pos­si­bi­lité qui vous est offerte pour y établir une connexion sécurisée. Découvrez avec nous le détail des dif­fé­rentes étapes à suivre.

Qu’est-ce qu’une clé SSH ?

Si vous souhaitez établir des con­nexions sé­cu­ri­sées à l’aide du protocole SSH, vous pouvez vous au­then­ti­fier en utilisant des clés SSH et sans ren­seig­ner de mot de passe. Pour ce faire, vous avez besoin d’une paire de clés SSH, qui se compose d’une clé publique et d’une clé privée. La clé publique est destinée au système avec lequel vous souhaitez établir la connexion SSH en question ; il peut par exemple s’agir d’un serveur. La clé privée, quant à elle, doit bé­né­fi­cier d’une pro­tec­tion par­ti­cu­lière. Après sa création, elle est stockée côté client (chez vous) ; vous devez ensuite l’utiliser pour dé­chif­frer la clé SSH publique au moment d’établir la connexion.

Conseil

Les clés SSH s’utilisent aujourd’hui avec un grand nombre de services. Depuis la fin de l’année 2021, le protocole SSH est d’ailleurs l’une des deux méthodes d’au­then­ti­fi­ca­tion dis­po­nibles pour accéder à la ligne de commande dans GitHub. Si vous souhaitez en savoir plus, consultez notre article intitulé « Uti­li­sa­tion d’une clé SSH avec GitHub ».

Créer et con­fi­gu­rer une clé SSH sous Ubuntu : étape par étape

Vous souhaitez vous connecter de manière sécurisée à des serveurs ou à certains services, le tout sans avoir à ren­seig­ner de mot de passe ? Les paires de clés SSH sont la solution d’au­then­ti­fi­ca­tion qu’il vous faut. À l’aide des étapes décrites ci-dessous, découvrez avec nous un exemple basé sur Ubuntu 22.04 et apprenez à générer des clés SSH sous Ubuntu et à les con­fi­gu­rer pour vous au­then­ti­fier sur un serveur, afin d’utiliser les clés SSH pour votre propre connexion réseau.

Conseil

Vous cherchez une solution sûre pour héberger vos fichiers ? N’attendez plus pour louer votre serveur SFTP avec IONOS pour trans­fé­rer et stocker vos données en toute sécurité grâce aux pro­to­coles SSH et FTP !

Étape 1 : créer une paire de clés SSH

Vous pouvez générer ra­pi­de­ment des clés SSH sous Ubuntu : passez di­rec­te­ment par le terminal pour créer à tout moment une paire composée d’une clé publique et d’une clé privée. Il vous suffit d’exécuter la ligne de commande d’Ubuntu avec la commande suivante :

ssh-keygen
bash

Celle-ci permet de générer au­to­ma­ti­que­ment une paire de clés RSA avec un chif­fre­ment de 3 072 bits, largement suffisant pour la plupart des cas d’uti­li­sa­tion. Il est également possible de créer des clés plus grandes (de 4 096 bits) ; pour ce faire, ajoutez sim­ple­ment le paramètre « -b 4096 » à votre commande.

ssh-keygen -b 4096
bash

Une fois cette commande exécutée, Ubuntu génère une paire de clés. Le système vous demande alors si vous souhaitez en­re­gis­trer ces clés SSH sous le ré­per­toire uti­li­sa­teur d’Ubuntu (dans le sous-dossier /.ssh) ; pour confirmer, appuyez sur la touche « Entrée ». Si cela ne vous convient pas, vous pouvez indiquer un autre chemin.

Image: Créer une clé SSH sous Ubuntu, depuis le terminal
Créer une clé SSH sous Ubuntu, depuis le terminal.

Une fois l’em­pla­ce­ment de votre paire de clés défini, Ubuntu vous demande de définir une phrase secrète et sécurisée. Cette phrase secrète permet d’ajouter un niveau de sécurité sup­plé­men­taire à votre méthode d’au­then­ti­fi­ca­tion chiffrée, et donc d’empêcher tout uti­li­sa­teur non autorisé de se connecter. Entrez la phrase que vous souhaitez ou laissez ce champ vide si vous estimez ne pas avoir besoin de ce niveau de sécurité.

Quoi que vous décidiez, terminez cette action en appuyant sur la touche « Entrée ». Vous devriez nor­ma­le­ment recevoir une « image randomart » in­di­vi­duelle de vos clés SSH ; celle-ci vous confirme leur bonne création.

Image: « Image randomart » d’une paire de clés SSH sous Ubuntu
« Image randomart » d’une paire de clés SSH sous Ubuntu.
Conseil

Vous ne savez pas sur quelle version du système vous tra­vail­lez ac­tuel­le­ment ? Consultez l’article suivant pour découvrir comment afficher votre version d’Ubuntu.

Étape 2 : trans­fé­rer la clé publique au serveur

À cette étape, vous devez trans­fé­rer la clé publique au système cible avec lequel vous prévoyez d’établir des con­nexions SSH sé­cu­ri­sées. Vous avez donc besoin du nom d’uti­li­sa­teur que vous utilisez pour vous connecter à ce système, mais également de l’adresse IP ou du domaine de ce dernier. Vous n’avez pas encore de nom d’uti­li­sa­teur ? Sachez qu’il est possible d’utiliser l’uti­li­sa­teur « root » dans ce genre de cas.

Pour le transfert de la clé SSH publique, Ubuntu propose l’outil ssh-copy-id par défaut. La syntaxe de la commande cor­res­pon­dante est la suivante :

ssh-copy-id username@ip-adresse/domain
bash

Lors de votre première connexion à l’hôte cible, le terminal renvoie un message précisant qu’il est im­pos­sible d’établir l’au­then­ti­fi­ca­tion de l’hôte (« Au­then­ti­city of host […] can’t be es­ta­bli­shed » en anglais). Tapez « yes » et confirmez votre entrée pour continuer votre con­fi­gu­ra­tion.

Image: Transfert de la clé SSH publique par l’intermédiaire du terminal Ubuntu
Transfert de la clé SSH publique par l’in­ter­mé­diaire du terminal Ubuntu.

Le service va main­te­nant re­cher­cher la clé que vous avez créée. S’il la trouve, vous pouvez pour­suivre le processus. Pour ce faire, saisissez le mot de passe per­met­tant la connexion au système cible. Vous marquez ainsi la fin de la con­fi­gu­ra­tion. Si la clé publique a bien été trans­fé­rée, le service renvoie le résultat suivant :

Image: Clé SSH sous Ubuntu : transfert vers le système cible réussi
Clé SSH sous Ubuntu : transfert vers le système cible réussi.

Étape 3 : procéder à l’au­then­ti­fi­ca­tion SSH au niveau de l’hôte cible

Vous pouvez désormais vous connecter à loisir sur l’appareil ou le serveur disposant de la clé publique à l’aide du protocole SSH. Comme pour le transfert de la clé, vous devez utiliser le nom d’uti­li­sa­teur et l’adresse IP ou le domaine de l’hôte cible. Vous devez intégrer ceux-ci à votre commande, dans l’ordre suivant :

ssh username@ip-adresse/domain
bash

Si vous avez défini une phrase secrète pour la paire de clés, celle-ci vous est alors demandée. Saisissez donc la phrase cor­res­pon­dante et sé­lec­tion­nez « Dé­ver­rouil­ler » pour vous connecter au système cible.

Image: Clé SSH sous Ubuntu : phrase secrète à renseigner
Clé SSH sous Ubuntu : phrase secrète à ren­seig­ner.

Étape 4 : dé­sac­ti­ver la saisie du mot de passe

Si vous avez réussi à vous connecter à l’aide de la paire de clés SSH, vous n’aurez plus besoin de recourir à la connexion à l’aide d’un mot de passe. En règle générale, cette procédure d’au­then­ti­fi­ca­tion reste toutefois active, ne serait-ce que pour les personnes non au­to­ri­sées sou­hai­tant accéder au système, notamment par l’in­ter­mé­diaire d’une attaque par force brute.

Pour plus de sécurité à cet égard, vous pouvez dé­sac­ti­ver la connexion par mot de passe sur le serveur ou sur l’appareil cible. Pour ce faire, connectez-vous en utilisant le protocole SSH, puis ouvrez le fichier de con­fi­gu­ra­tion su service SSH :

sudo nano /etc/ssh/sshd_config
bash

Dans le fichier de con­fi­gu­ra­tion, trouvez ensuite l’entrée « Pass­wor­dAu­then­ti­ca­tion » et réglez cette dernière sur « no ».

Image: Modification du fichier de configuration du service SSH
Mo­di­fi­ca­tion du fichier de con­fi­gu­ra­tion du service SSH.

En­re­gis­trez les mo­di­fi­ca­tions que vous avez apportées au fichier de con­fi­gu­ra­tion, puis re­dé­mar­rez le service SSH en vous servant de la commande suivante :

sudo systemctl restart ssh
bash

Trans­fé­rer ma­nuel­le­ment une clé SSH sous Ubuntu

L’outil ssh-copy-id, donc il est question à l’étape 2, n’est pas dis­po­nible sur tous les systèmes. Si le vôtre est concerné, sachez qu’il est très facile de trans­fé­rer ma­nuel­le­ment la clé publique créée par vos soins vers le système cible.

Commencez par afficher votre clé publique en exécutant la commande suivante :

cat ~/.ssh/id_rsa.pub
bash
Image: Génération de la clé SSH publique dans le terminal Ubuntu
Gé­né­ra­tion de la clé SSH publique dans le terminal Ubuntu.

Main­te­nant, copiez cette clé dans le fichier « au­tho­ri­zed_keys » du ré­per­toire « ssh » de l’hôte cible. Si ce ré­per­toire n’existe pas encore, vous devez le créer en faisant appel à la commande suivante :

mkdir -p ~/.ssh
bash

Pour le transfert de la clé, il vous suffit ensuite de lancer cette commande :

echo clé >> ~/.ssh/authorized_keys
bash

Dans cette commande, remplacez « clé » par le résultat obtenu pré­cé­dem­ment, en com­men­çant par « ssh-rsa ».

Enfin, veillez à supprimer toutes les ha­bi­li­ta­tions des groupes et autres au­to­ri­sa­tions pour le ré­per­toire « ssh » et le fichier « au­tho­ri­zed_keys ».

chmod -R go= ~/.ssh
bash
Conseil

Pour plus d’in­for­ma­tions sur le protocole SSH et le système d’ex­ploi­ta­tion Ubuntu, consultez les articles suivants issus de notre guide numérique :

Aller au menu principal