Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Module 2 · 2.1

Créer et utiliser des clés SSH

Module 2: SSH et clés · Temps de lecture : 10 minutes

Objectif pédagogique : À l'issue de cette leçon, vous saurez créer une paire de clés, placer la clé publique sur votre serveur, vous connecter sans mot de passe et conserver votre clé privée de sorte qu'un ordinateur portable perdu ne tourne pas à la catastrophe.

Notions clés : paire de clés, clé publique, clé privée, ed25519, RSA, passphrase, ssh-agent, ssh-copy-id, authorized_keys, droits 700 et 600, une clé par appareil, clé FIDO2

Pourquoi les clés valent mieux que les mots de passe

Dans la leçon 1.3, vous vous êtes connecté avec un mot de passe. Cela fonctionne, mais un serveur sur Internet reçoit dès la première minute la visite de programmes qui devinent des mots de passe. Jetez un œil au journal d'un serveur tout neuf :

root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214

Des centaines de tentatives par heure, c'est normal. Un mot de passe robuste les arrête, mais vous avez créé un point faible dont vous n'avez pas besoin. Avec une clé SSH, deviner ne sert à rien : il n'y a rien à deviner qui figure dans une liste de mots.

Une clé se compose de deux parties qui vont ensemble, une paire de clés :

  • La clé privée reste sur votre propre ordinateur. Quiconque possède ce fichier (et connaît la passphrase) peut se connecter. Ne la partagez avec personne, pas même avec votre fournisseur ou un service d'assistance.
  • La clé publique, vous la donnez au serveur. Tout le monde peut la voir : elle ne permet pas de se connecter, seulement de vérifier.

Lors de la connexion, aucun mot de passe ne transite sur la ligne. Votre ordinateur prouve par une signature qu'il possède la clé privée, et le serveur vérifie cette signature avec la clé publique. Même si quelqu'un observe le réseau, il ne voit rien qu'il puisse réutiliser plus tard.

Créer une clé

Vous créez la clé sur votre propre ordinateur, pas sur le serveur. Windows 10 et 11, macOS et Linux intègrent déjà ssh-keygen. Ouvrez PowerShell ou le Terminal :

anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026

Que se passe-t-il ici ?

  • -t ed25519 choisit le type. Ed25519 est court, rapide et sûr, et depuis OpenSSH 9.5 c'est aussi le type par défaut si vous n'indiquez rien. Si vous devez gérer un ancien système qui ne connaît pas ed25519, prenez RSA avec au moins 3072 bits : ssh-keygen -t rsa -b 4096. Les types plus anciens comme DSA ont été retirés d'OpenSSH ; ne les utilisez pas.
  • -C n'est qu'un commentaire. Indiquez-y de quoi reconnaître plus tard l'appareil auquel appartient la clé. C'est d'une grande aide lorsque vous devez révoquer une clé.
  • La passphrase chiffre la clé privée sur votre disque. Si votre ordinateur portable est volé, le voleur ne dispose que d'un fichier chiffré. Sans passphrase, il accède directement à tous vos serveurs.

Vous avez maintenant deux fichiers :

FichierContenuÀ partager ?
~/.ssh/id_ed25519Clé privéeJamais
~/.ssh/id_ed25519.pubClé publique, une seule ligne de texteOui, avec le serveur

Sous Windows, ils se trouvent dans C:\Users\anna\.ssh\. La clé publique est une seule ligne qui commence par ssh-ed25519 :

anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026

Placer la clé publique sur le serveur

Le serveur cherche les clés publiques dans le fichier ~/.ssh/authorized_keys de l'utilisateur avec lequel vous vous connectez. Chaque ligne correspond à une clé. Il existe trois façons d'y placer votre clé :

1. Lors de l'installation. La plupart des fournisseurs proposent, lors de la création ou de la réinstallation d'un VPS, un champ pour votre clé publique. Chez WebOké, ce champ s'appelle « Clé SSH » dans l'écran du VPS ; chez les autres fournisseurs, le fonctionnement est similaire. C'est la meilleure méthode : aucun mot de passe n'a jamais besoin d'être activé.

2. Avec ssh-copy-id (macOS et Linux), tant que la connexion par mot de passe fonctionne encore :

anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 1

3. À la main, par exemple depuis Windows ou via la console de votre fournisseur. Collez la ligne de votre fichier .pub dans authorized_keys et réglez les droits correctement :

anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keys

Ces droits ne sont pas un détail. Le serveur SSH les vérifie (le paramètre StrictModes est activé par défaut) : si d'autres utilisateurs peuvent écrire dans votre dossier .ssh ou dans votre dossier personnel, il ignore vos clés. Vous voyez alors simplement réapparaître la demande de mot de passe, sans message d'erreur clair. Vous apprendrez à lire les droits dans la leçon 3.1.

Testez ensuite dans une nouvelle fenêtre :

anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$

La question vient désormais de votre propre ordinateur (la passphrase de votre clé), et non plus du serveur.

ssh-agent : déverrouiller une seule fois

Saisir la passphrase à chaque fois est fastidieux. Le ssh-agent garde votre clé déverrouillée en mémoire tant que votre session est ouverte sur votre ordinateur :

anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)

Sur macOS, l'agent se relie au trousseau ; sous Windows, il s'agit du service « OpenSSH Authentication Agent » (à activer une fois dans Services). Vous profitez ainsi du confort de ne plus saisir de mot de passe, tout en gardant une clé chiffrée sur le disque.

Attention au transfert d'agent (agent forwarding, ssh -A) : il permet au serveur sur lequel vous vous connectez d'utiliser votre agent. Quiconque est root sur ce serveur peut alors aller plus loin avec votre clé. Ne l'utilisez que sur des serveurs en qui vous avez une confiance totale, ou utilisez ProxyJump (leçon 2.3).

Une clé par appareil, et savoir où elles se trouvent

Une erreur fréquente : copier une seule clé privée sur l'ordinateur portable, le PC et le téléphone. Si vous perdez un appareil, vous devez remplacer la clé partout et reconfigurer tous les appareils. Mieux vaut :

  • créer une clé distincte sur chaque appareil, avec un commentaire explicite (-C "anna@telefoon") ;
  • placer toutes les clés publiques dans authorized_keys, une par ligne ;
  • en cas de perte d'un appareil, supprimer uniquement la ligne correspondante.

Vérifiez régulièrement quelles clés ont accès :

anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)

Si vous trouvez une clé que vous ne reconnaissez pas, c'est un signal d'alarme (leçon 10.3). Les intrus aiment placer leur propre clé dans authorized_keys pour revenir plus tard.

Une clé matérielle (FIDO2, comme une YubiKey) est également possible. Avec ssh-keygen -t ed25519-sk, la partie secrète se trouve sur la clé elle-même et vous devez la toucher à chaque utilisation. Un fichier volé n'a alors aucune valeur. C'est un bel échelon supplémentaire, mais pas nécessaire pour commencer.

Vous avez perdu votre clé privée ?

Si vous perdez votre unique clé privée alors que la connexion par mot de passe est désactivée, vous ne pouvez plus entrer via SSH. C'est pourquoi :

  • placez toujours au moins deux clés sur le serveur (par exemple ordinateur portable et PC) ;
  • sachez comment fonctionne la console de votre fournisseur (leçon 1.2). Vous vous y connectez comme si un clavier était branché sur le serveur, et cela fonctionne aussi sans SSH. Chez WebOké, elle s'appelle Console dans l'écran du VPS ; d'autres fournisseurs parlent de console VNC, de console web ou de console de secours.

Sur AlmaLinux et Rocky Linux

Tout ce qui figure dans cette leçon fonctionne de la même manière. Un piège supplémentaire : avec SELinux activé, ~/.ssh doit porter le bon label de sécurité. Si vous avez créé ou copié le dossier à la main et que votre clé est ignorée, restorecon -Rv ~/.ssh corrige cela.

Résumé

  • Une paire de clés se compose d'une clé privée (qui reste chez vous) et d'une clé publique (qui va sur le serveur, dans ~/.ssh/authorized_keys).
  • Créez vos clés avec ssh-keygen -t ed25519 sur votre propre ordinateur, avec une passphrase ; utilisez ssh-agent pour plus de confort.
  • Les droits comptent : ~/.ssh en 700 et authorized_keys en 600, sinon le serveur ignore votre clé.
  • Une clé par appareil, avec un commentaire explicite, pour pouvoir en révoquer une seule.
  • Prévoyez une deuxième clé et maîtrisez la console de votre fournisseur comme accès de secours.

Quiz

1. Quel fichier pouvez-vous donner à votre fournisseur ou à un collègue pour obtenir l'accès à un serveur ?



2. Vous avez placé votre clé dans authorized_keys, mais le serveur demande toujours un mot de passe. Quelle est une cause fréquente ?



3. Pourquoi protéger votre clé privée par une passphrase ?



4. Votre ordinateur portable a été volé. Le serveur contient trois clés : portable, PC et téléphone, chacune avec son propre commentaire. Que faites-vous ?



5. Quel est le risque de ssh -A (transfert d'agent) vers un serveur auquel vous ne faites pas confiance ?



Exercice

Exercice O2.1 : Créer et utiliser une clé. Créez sur votre propre ordinateur une clé ed25519 avec une passphrase et un commentaire explicite, placez-la sur votre serveur (via le champ de votre fournisseur, ssh-copy-id ou à la main), vérifiez les droits et connectez-vous avec la clé dans une nouvelle fenêtre. Saisissez ensuite l'empreinte de votre clé (obtenue avec ssh-keygen -lf ~/.ssh/id_ed25519.pub) et répondez aux questions sur l'emplacement de votre clé privée et sur ce que vous faites si vous la perdez. Le programme vérifie uniquement que l'empreinte a le bon format ; le reste, c'est à vous de le faire.

Exercice O2.1: Créer et utiliser une clé

Cet exercice, vous le faites vous-même ; personne ne le vérifie. Cochez ce que vous avez fait et marquez l'exercice comme terminé.




Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.

Pour aller plus loin

Les étapes décrites dans ces articles s'appliquent à l'écran VPS et aux panneaux de WebOké ; chez les autres fournisseurs, le fonctionnement est similaire.

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…