Où sont stockées les clés SSH dans Linux — et comment les gérer en toute sécurité
SSH (Secure Shell) est un outil fondamental dans l’écosystème Linux, utilisé pour l’accès à distance, les transferts de fichiers sécurisés, l’automatisation et la gestion des serveurs. Bien que la plupart des utilisateurs interagissent avec SSH via la commande ssh, en coulisses SSH s’appuie sur des paires de clés publiques et privées pour l’authentification — surtout dans des environnements où les connexions sans mot de passe, l’automatisation et les pratiques DevOps sont essentielles.
Emplacement par défaut de stockage des clés SSH
L’endroit le plus courant où les clés SSH sont stockées est :
Cela fait référence au répertoire .ssh dans le dossier personnel de l’utilisateur, par exemple :
Fichiers courants dans ce répertoire :
| Fichier | But |
|---|---|
| id_rsa | Clé privée par défaut (RSA) |
| id_rsa.pub | Clé publique correspondante |
| id_ecdsa, id_ed25519 | Autres clés privées (ECDSA, Ed25519) |
| id_*.pub | Clés publiques correspondantes |
| authorized_keys | Stocke les clés publiques autorisées à se connecter |
| known_hosts | Stocke les empreintes des serveurs (vérification de la clé hôte) |
| config | Configuration du client SSH spécifique à l’utilisateur |
Si vous générez des clés avec ssh-keygen, elles sont stockées ici par défaut, sauf si un chemin est spécifié.
Emplacements des clés SSH à l’échelle du système
Clés hôtes du serveur SSH (sshd)
Clés à l’échelle du système utilisées par le démon SSH (côté serveur) :
Fichiers typiques :
| Fichier | But |
|---|---|
| ssh_host_rsa_key | Clé privée hôte (RSA) |
| ssh_host_rsa_key.pub | Clé publique hôte |
| ssh_host_ecdsa_key | Clé privée hôte ECDSA |
| ssh_host_ed25519_key | Clé privée hôte Ed25519 |
Ces clés sont utilisées pour identifier le serveur aux clients, pas pour authentifier les utilisateurs.
Le démon SSH (sshd) présente la clé publique hôte lors de la connexion ; les clients la comparent à ~/.ssh/known_hosts.
Emplacements de clés personnalisés
Vous pouvez générer ou utiliser des clés SSH depuis n’importe quel emplacement, mais vous devez spécifier le chemin :
Vous pouvez également configurer plusieurs clés via ~/.ssh/config :
Où les clés sont-elles utilisées ?
Sortant (côté client)
Les clients SSH recherchent des clés privées dans ~/.ssh/ par défaut. Elles sont utilisées pour initier l’authentification lors de la connexion à un serveur distant.
ssh, scp, rsync sur SSH, git (lors de l’utilisation de SSH à distance)
📌 Entrant (côté serveur)
Le serveur recherche des clés publiques dans :
Ce fichier liste quelles clés publiques sont autorisées à se connecter à ce compte utilisateur spécifique.
Si user_a essaie de se connecter à un serveur en tant que user_b, sa clé publique doit être présente dans ~user_b/.ssh/authorized_keys.
Permissions — Critiques pour la sécurité
Permissions correctes :
Des permissions incorrectes peuvent amener SSH à ignorer vos clés ou à rejeter complètement les connexions.
Gérer les clés SSH en toute sécurité
Utilisez une phrase de passe lors de la génération de clés privées :
Utilisez ssh-agent pour mettre en cache les clés déverrouillées en mémoire :
- Faites tourner les clés régulièrement
- Supprimez les clés inutilisées ou orphelines de “authorized_keys”
- Utilisez des clés séparées par hôte/projet
- Évitez d’utiliser des clés root dans différents environnements
Audit et débogage
Pour voir quelle clé est utilisée lors de la connexion SSH :
Cela imprime des journaux détaillés, y compris quel fichier d’identité a été tenté.
Pour lister les clés chargées dans votre agent actuel :
Pour supprimer une clé :
Conclusion
Comprendre où les clés SSH sont stockées dans Linux — et comment les gérer en toute sécurité — est crucial pour les administrateurs système, les développeurs, les ingénieurs DevOps et quiconque travaillant dans des environnements multi-hôtes ou multi-utilisateurs.
En connaissant la différence entre les clés utilisateur, les clés hôtes et les clés autorisées, vous pouvez :
- Résoudre les problèmes d’authentification
- Mettre en place des flux de travail automatisés sécurisés
- Gérer l’accès entre équipes et systèmes
Sur les systèmes de production ou les plateformes cloud (par exemple, VPS ou serveurs dédiés), une mauvaise gestion des clés SSH peut entraîner de graves vulnérabilités. Assurez-vous de suivre les meilleures pratiques et d’auditer l’accès régulièrement.
