Wolkra

Guides

Créer et utiliser des clés SSH

Comment créer des clés SSH sous Linux, macOS et Windows, les ajouter à un VPS, utiliser ssh-agent et un fichier de configuration, et renouveler vos clés en toute sécurité. Des étapes claires, de vraies commandes.

Mis à jour le 6 min de lecture

Une clé SSH est une paire de fichiers : une clé privée qui reste sur votre ordinateur et une clé publique que vous placez sur le serveur. Créez-en une avec ssh-keygen -t ed25519, ajoutez la clé publique au serveur, et vous vous connectez sans mot de passe, avec une sécurité bien meilleure.

Ce guide couvre Linux, macOS et Windows, puis les détails qui rendent les clés agréables à utiliser.

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

Chaque serveur sur Internet subit en permanence des tentatives de devinette de mot de passe sur le port 22. Un mot de passe robuste les ralentit ; une clé les arrête, car il n'y a rien à deviner. Les clés rendent aussi l'automatisation possible : scripts, outils de déploiement et CI peuvent se connecter sans stocker de mot de passe.

1. Créer une clé

Linux et macOS

Ouvrez un terminal et lancez :

bash
ssh-keygen -t ed25519 -C "laptop-2026"
  • -t ed25519 choisit le type de clé moderne.
  • -C ajoute un commentaire pour reconnaître la clé plus tard. Utilisez le nom de l'appareil plutôt qu'une adresse e-mail si vous tenez à votre vie privée.

Acceptez le chemin par défaut (~/.ssh/id_ed25519) et définissez une phrase de passe. Vous avez maintenant :

text
~/.ssh/id_ed25519       # clé privée, ne jamais la partager
~/.ssh/id_ed25519.pub   # clé publique, peut être partagée

Windows 10 et 11

Windows intègre OpenSSH. Ouvrez PowerShell et lancez la même commande :

powershell
ssh-keygen -t ed25519 -C "desktop-2026"

Les fichiers sont placés dans C:\Users\<you>\.ssh\. Si vous utilisez PuTTY, vous pouvez importer la clé privée dans PuTTYgen et l'enregistrer au format .ppk.

2. Afficher votre clé publique

bash
cat ~/.ssh/id_ed25519.pub

Il s'agit d'une seule ligne qui commence par ssh-ed25519. C'est cette partie que vous copiez sur les serveurs et dans la console.

3. Placer la clé sur un serveur

Option A : à la création du serveur

C'est la méthode la plus simple. Dans la console Wolkra, ajoutez la clé publique dans Clés SSH, puis sélectionnez-la quand vous créez un serveur. La clé est écrite dans le compte root au premier démarrage et aucun mot de passe n'est envoyé. Voir se connecter en SSH.

Option B : avec ssh-copy-id

Si le serveur existe déjà et que vous pouvez vous connecter avec un mot de passe :

bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]   # adresse d'exemple

Option C : à la main

Sous Windows, ou quand ssh-copy-id n'est pas disponible, collez la clé dans le fichier authorized_keys du serveur :

bash
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'ssh-ed25519 AAAA... laptop-2026' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Les permissions comptent. Si ~/.ssh ou authorized_keys est accessible en écriture à d'autres utilisateurs, OpenSSH ignore le fichier.

4. Se connecter

Si vous avez plusieurs clés, indiquez celle à utiliser :

bash
ssh -i ~/.ssh/id_ed25519 [email protected]

5. Utiliser ssh-agent pour ne saisir la phrase de passe qu'une fois

macOS

bash
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Ajoutez ensuite à ~/.ssh/config :

text
Host *
  AddKeysToAgent yes
  UseKeychain yes

Linux

La plupart des environnements de bureau démarrent un agent automatiquement. Sinon :

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows

powershell
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

6. Écrire un fichier de configuration SSH

Un fichier de configuration transforme de longues commandes en noms courts. Créez ~/.ssh/config :

text
Host web
  HostName 203.0.113.10
  User deploy
  IdentityFile ~/.ssh/id_ed25519

Host db
  HostName 10.0.0.5
  User deploy
  ProxyJump web

Désormais, ssh web se connecte au premier serveur, et ssh db atteint un serveur d'un réseau privé en rebondissant par web. C'est ainsi que l'on gère des serveurs sans IP publique, par exemple sur un réseau privé. (Les adresses sont des exemples.)

7. Copier des fichiers avec la même clé

scp et rsync utilisent les mêmes clés et la même configuration :

bash
scp backup.tar.gz web:/home/deploy/
rsync -avz ./site/ web:/var/www/site/

8. Désactiver la connexion par mot de passe sur le serveur

Une fois la connexion par clé fonctionnelle, désactivez les mots de passe pour que le serveur n'accepte plus que les clés :

bash
sudo tee /etc/ssh/sshd_config.d/10-keys-only.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
EOF
sudo sshd -t && sudo systemctl reload ssh

Gardez une session ouverte pendant que vous en testez une nouvelle. prohibit-password n'autorise root à se connecter qu'avec une clé ; passez-le à no dès que vous travaillez avec un utilisateur sudo. Plus de détails dans sécuriser un serveur Ubuntu.

9. Renouveler et révoquer des clés

Les bonnes habitudes :

  • Une clé par appareil. Si un ordinateur portable est perdu, il suffit de retirer cette clé.
  • Des commentaires parlants. laptop-2026 se retrouve plus facilement que user@host.
  • Relisez authorized_keys de temps en temps et supprimez les clés que personne n'utilise.

Pour révoquer une clé, supprimez sa ligne de ~/.ssh/authorized_keys sur chaque serveur. Pour la remplacer, ajoutez d'abord la nouvelle clé, testez, puis retirez l'ancienne.

10. Facultatif : clés matérielles

OpenSSH prend en charge les clés de sécurité FIDO2. Avec une clé compatible branchée :

bash
ssh-keygen -t ed25519-sk -C "yubikey"

La clé privée ne peut pas être copiée hors de l'appareil, et chaque connexion exige un contact physique. C'est l'option la plus robuste pour les comptes d'administration.

11. Utiliser des clés SSH pour les déploiements et la CI

Les systèmes automatisés ne doivent pas utiliser votre clé personnelle. Créez une clé distincte sans phrase de passe pour chaque système, et limitez ce qu'elle peut faire sur le serveur :

bash
ssh-keygen -t ed25519 -f ~/.ssh/deploy_ci -N "" -C "ci-deploy"

Sur le serveur, préfixez la clé dans authorized_keys avec des options qui la restreignent :

text
from="198.51.100.0/24",no-port-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAA... ci-deploy
  • from= n'accepte la clé que depuis la plage indiquée (un exemple ici).
  • no-pty et les options de redirection empêchent tout usage interactif.
  • command="..." peut imposer une commande précise, comme un script de déploiement.

Stockez la clé privée dans le coffre à secrets de votre système de CI, jamais dans le dépôt. Si le système de CI est un jour compromis, supprimer une seule ligne de authorized_keys suffit à lui couper l'accès.

12. Vérifier la clé d'hôte du serveur

L'invite d'empreinte lors de la première connexion vous protège contre une connexion à la mauvaise machine. Pour les serveurs importants, comparez-la avec la vraie. Dans la console du serveur depuis le navigateur, lancez :

bash
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Si elle correspond à ce qu'affichait votre client SSH, répondez yes. L'empreinte est alors enregistrée dans ~/.ssh/known_hosts et vérifiée à chaque connexion ultérieure.

Dépannage

Message Cause habituelle
Permission denied (publickey) Mauvais utilisateur, mauvaise clé ou mauvaises permissions sur ~/.ssh
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED Le serveur a été réinstallé ou l'IP réutilisée ; supprimez l'ancienne entrée avec ssh-keygen -R 203.0.113.10
Un mot de passe est quand même demandé La clé n'a pas été proposée ; essayez ssh -v pour voir quelles clés sont testées

Lancez ssh -v user@host pour obtenir un journal détaillé de ce que tente le client. Si vous êtes complètement bloqué hors d'un serveur Wolkra, ouvrez la console dans le navigateur depuis la vue du serveur ou démarrez en mode rescue.

Étape suivante : suivez les premières étapes sur un nouveau VPS.

Questions fréquentes

Quel type de clé SSH utiliser ?

Utilisez Ed25519. Elle est courte, rapide et sûre, et toutes les versions actuelles d'OpenSSH la prennent en charge. N'utilisez RSA 4096 bits que pour des systèmes très anciens.

Ma clé SSH doit-elle avoir une phrase de passe ?

Oui. La phrase de passe chiffre la clé privée sur le disque : un ordinateur portable ou une sauvegarde volés ne donnent donc pas accès à vos serveurs. Avec ssh-agent, vous ne la saisissez qu'une fois par session.

Puis-je utiliser la même clé pour plusieurs serveurs ?

Oui. Votre clé publique peut se trouver sur de nombreux serveurs. Beaucoup de gens utilisent une clé par appareil plutôt qu'une par serveur, pour pouvoir révoquer un appareil perdu à un seul endroit.

Et si je perds ma clé privée ?

Connectez-vous autrement, par exemple via la console dans le navigateur, et retirez l'ancienne clé publique de ~/.ssh/authorized_keys. Ajoutez ensuite une nouvelle clé.

Où ajouter une clé chez Wolkra ?

Dans la rubrique Clés SSH de la console. Les clés enregistrées peuvent être sélectionnées à la création d'un serveur et sont écrites dans le compte root au premier démarrage.

Lancer un serveur à Francfort

Créez un compte, rechargez votre solde et lancez un serveur dès €3.49 par mois, en ne payant que les heures utilisées. Bande passante non mesurée sur toutes les offres.