Sécuriser son accès SSH avec une YubiKey
La sécurité des accès SSH est cruciale, que ce soit pour administrer un serveur ou se connecter à un dépôt Git. Pourtant, de nombreux utilisateurs commettent encore des erreurs : clés non renouvelées, mots de passe faibles, ou même absence de mot de passe sur la clé privée ! Dans cet article, découvrez comment générer une clé SSH/ECDSA, la lier à une YubiKey, et adopter de bonnes pratiques.
Problèmes courants de sécurité SSH
- Clés jamais renouvelées : Une clé SSH utilisée pendant des années devient une cible privilégiée.
- Mots de passe faibles ou absents : Beaucoup n’ajoutent pas de passphrase à leur clé privée, ou choisissent un mot de passe trop simple.
- Clés stockées sur plusieurs machines : Copier la clé privée sur plusieurs ordinateurs multiplie les risques de fuite.
Bonnes pratiques
- Toujours protéger sa clé privée par une passphrase forte.
- Renouveler ses clés régulièrement.
- Éviter de copier la clé privée : préférez l’usage d’un hardware token comme la YubiKey.
Générer une clé SSH/ECDSA
Pour générer une clé SSH ECDSA :
Le prompt vous demandera :
Enter file in which to save the key (/home/user/.ssh/id_ecdsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:
Choisissez un mot de passe fort ! N’utilisez jamais de clé sans passphrase.
Utiliser une YubiKey pour SSH
La YubiKey permet de stocker la clé privée sur un support physique, rendant le vol de la clé quasi impossible.
Pré-requis
- Une YubiKey (modèle compatible OpenPGP ou FIDO2)
- Les outils
ykman
etgpg
installés
Générer une clé SSH sur la YubiKey (OpenPGP)
- Initialisez votre YubiKey :
ykman openpgp reset
- Générez une paire de clés sur la YubiKey :
gpg --card-editgpg/card> admingpg/card> generate
Suivez les instructions : choisissez une passphrase forte pour la clé, et laissez la YubiKey générer la clé privée (elle ne sortira jamais du token).
- Exportez la clé publique SSH :
gpg --card-statusgpg --export-ssh-key <votre_email> > ~/.ssh/id_yubikey.pub
Ajoutez cette clé à vos serveurs ou à GitHub/GitLab.
Utiliser une clé FIDO2 (ed25519-sk)
Pour les YubiKey récentes, vous pouvez générer une clé SSH FIDO2 :
Le prompt vous demandera d’insérer et de toucher la YubiKey.
Exemple de configuration SSH
Ajoutez à votre ~/.ssh/config
:
Host mon-serveur HostName mon-serveur.example.com User monuser IdentityFile ~/.ssh/id_yubikey.pub IdentitiesOnly yes
Prompt SSH typique
$ ssh mon-serveurEnter PIN for authenticator:Welcome to Ubuntu 22.04 LTS!
Conclusion
Protéger son accès SSH est indispensable. Utiliser une YubiKey permet de sécuriser la clé privée, d’éviter les mauvaises pratiques (clé copiée, mot de passe faible) et de simplifier la gestion. N’oubliez pas de renouveler vos clés régulièrement et de garder une sauvegarde de secours !
Pour aller plus loin :