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 :
ssh-keygen -t ed25519 -C "laptop-2026"
-t ed25519choisit le type de clé moderne.-Cajoute 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 :
~/.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 :
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
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 :
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 :
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 :
ssh -i ~/.ssh/id_ed25519 [email protected]
5. Utiliser ssh-agent pour ne saisir la phrase de passe qu'une fois
macOS
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Ajoutez ensuite à ~/.ssh/config :
Host *
AddKeysToAgent yes
UseKeychain yes
Linux
La plupart des environnements de bureau démarrent un agent automatiquement. Sinon :
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows
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 :
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 :
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 :
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-2026se retrouve plus facilement queuser@host. - Relisez
authorized_keysde 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 :
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 :
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 :
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-ptyet 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 :
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.