Permissions des clés SSH : quand utiliser chmod 600 ou 700
Utilisez chmod 600 pour une clé SSH privée et 700 pour son répertoire, puis vérifiez permissions et propriété avant de vous reconnecter.
Démarrer la leçon interactiveUtilisez chmod 600 pour une clé SSH privée lorsque son propriétaire a besoin de la lire et de la modifier, et chmod 700 pour le répertoire .ssh afin que seul le propriétaire puisse le lister, le modifier ou y entrer. OpenSSH refuse les clés privées auxquelles d’autres utilisateurs peuvent accéder. Vérifiez aussi bien la propriété que le mode, car chmod ne peut pas corriger une clé appartenant au mauvais compte. La leçon sur les permissions SSH propose des chemins d’entraînement sûrs avant de modifier une véritable clé.
Appliquer 600 au fichier de clé privée
Pour une clé Ed25519 privée dans votre répertoire personnel, exécutez :
chmod 600 "$HOME/.ssh/id_ed25519"
Le mode 600 signifie :
| Utilisateurs | Permission |
|---|---|
| propriétaire | lecture + écriture |
| groupe | aucune |
| autres | aucune |
SSH doit pouvoir lire la clé privée, mais les autres comptes ne doivent pas y accéder. Un mode en lecture seule comme 400 peut aussi respecter cette règle lorsque le propriétaire n’a pas besoin de modifier le fichier. 600 est le choix pratique habituel pour une clé gérée par son propriétaire.
N’appliquez pas automatiquement la même règle à la clé publique dont le nom se termine par .pub. Une clé publique est conçue pour être partagée et n’est pas secrète. La clé privée est le fichier sensible qu’OpenSSH refuse d’utiliser lorsque d’autres utilisateurs peuvent y accéder.
Appliquer 700 au répertoire .ssh
Les répertoires ont besoin de la permission d’exécution, aussi appelée recherche ou traversée, pour permettre l’accès aux entrées qu’ils contiennent. Protégez le répertoire avec :
chmod 700 "$HOME/.ssh"
Le mode 700 accorde au propriétaire les droits de lecture, d’écriture et de traversée, sans aucun accès pour le groupe ni les autres utilisateurs. Utiliser 600 sur un répertoire supprimerait son bit de traversée, ce qui pourrait empêcher le propriétaire d’ouvrir les fichiers qu’il contient, même si le répertoire reste lisible.
Évitez un raccourci récursif comme chmod -R 700 "$HOME/.ssh". Il ajouterait la permission d’exécution à tous les fichiers ordinaires et effacerait les différences voulues entre clés privées, clés publiques, configuration et fichiers d’hôtes connus. Modifiez séparément le répertoire et la clé privée concernée.
Vérifier ensemble le mode et la propriété
Inspectez les deux chemins après les avoir modifiés :
ls -ld "$HOME/.ssh"
ls -l "$HOME/.ssh/id_ed25519"
Le répertoire doit commencer par drwx------ et la clé privée par -rw-------. Le propriétaire indiqué sur les deux lignes doit être le compte qui exécute ssh.
Si le mode est correct mais pas le propriétaire, examinez la situation avant de le changer. Sur un système personnel, la correction voulue peut ressembler à ceci :
sudo chown "$USER" "$HOME/.ssh/id_ed25519"
Ne copiez pas cette commande sur un système partagé ou administré sans confirmer sa politique de comptes. Le guide chown explique séparément les vérifications de propriété et les risques de récursion.
Lorsque chmod ne semble pas fonctionner
Les fichiers stockés sur des systèmes montés depuis Windows, des systèmes réseau, des conteneurs ou d’autres systèmes gérés peuvent ne pas exposer normalement les bits de permission Unix. Si chmod indique une réussite mais que ls -l ne montre aucun changement utile, vérifiez le montage et les règles du système de fichiers au lieu d’élargir sans cesse les accès.
Utilisez ssh -v host pour voir quel fichier d’identité SSH tente de charger, mais ne publiez pas les journaux détaillés sans retirer les noms d’hôtes, noms d’utilisateurs et chemins. Un mode correct sur une clé ne sert à rien si SSH charge un autre fichier.
Pour comprendre le système octal sous-jacent, lisez l’explication des nombres de chmod. OpenSSH documente ses contrôles d’accès aux clés privées dans le manuel de ssh.
Références
Ces liens de documentation fournissent des informations fiables sur les commandes utilisées dans cet article.
À suivre
Extrayez rapidement des lignes de journal exploitables avec des filtres grep insensibles à la casse.