Linux

Résoudre l’erreur SSH « Permission Denied (publickey) » sous Linux : Guide Complet

Résoudre l’erreur SSH « Permission Denied (publickey) » sous Linux : Guide Complet

SSH « permission denied publickey » est une erreur courante rencontrée par les utilisateurs de Linux qui tentent de se connecter à un serveur via SSH. Cette erreur indique que le serveur ne reconnaît pas la clé publique fournie par le client SSH. Cela peut se produire pour plusieurs raisons, notamment des problèmes de configuration de la clé, des permissions inappropriées sur les fichiers ou des problèmes de configuration du serveur SSH lui-même. Comprendre cette erreur et savoir comment y remédier est essentiel pour assurer des connexions sécurisées et fiables.

Key Takeaways

  • La permission denied publickey est due à un problème d’authentification avec la clé SSH.
  • Les erreurs de permissions ou de configurations sur le serveur peuvent en être la cause majeure.
  • Suivre des étapes de dépannage systématiques peut aider à résoudre ce problème.
  • Éviter les erreurs communes et adopter de bonnes pratiques contribue à prévenir ce type de problème.
A lire :  Résoudre le Problème de Bluetooth Qui Disparaît Après Suspension Sous Linux

Causes Possibles

Permissions Incorrectes

L’une des raisons les plus fréquentes de cette erreur est que les fichiers liés à l’authentification, tels que ~/.ssh/authorized_keys, ont des permissions trop ouvertes ou incorrectes. SSH exige des permissions strictes sur ces fichiers pour des raisons de sécurité.

Clé Publique Non Ajoutée

Si la clé publique du client n’est pas correctement ajoutée au fichier authorized_keys sur le serveur, vous recevrez une erreur de type permission denied.

Mauvaise Configuration de SSH

Les fichiers de configuration SSH peuvent également causer des problèmes. Par exemple, des paramètres non autorisés dans le fichier de configuration SSH (/etc/ssh/sshd_config) peuvent bloquer l’accès.

Problèmes de Copie de Clé

Si vous utilisez ssh-copy-id pour copier la clé publique et que cela échoue, la clé ne sera pas ajoutée au fichier authorized_keys.


Guide de Dépannage étape par étape

Étape 1 : Vérifier les Permissions

  1. Connectez-vous à votre serveur.

  2. Exécutez la commande suivante pour vérifier les permissions des fichiers de clé :
    bash
    ls -l ~/.ssh/authorized_keys

  3. Assurez-vous que les permissions sont au moins 600 :
    bash
    chmod 600 ~/.ssh/authorized_keys

Étape 2 : Vérifier la Clé Publique

  1. Ouvrez le fichier ~/.ssh/authorized_keys :
    bash
    nano ~/.ssh/authorized_keys

  2. Assurez-vous que la clé publique SSH est bien présente et correcte.

Étape 3 : Vérifier la Configuration de SSH

  1. Ouvrez le fichier de configuration SSH :
    bash
    sudo nano /etc/ssh/sshd_config

  2. Vérifiez les paramètres comme PermitRootLogin et PubkeyAuthentication.

  3. Redémarrez le service SSH :
    bash
    sudo systemctl restart sshd

Étape 4 : Testez avec SSH en mode verbeux

  1. Utilisez le mode verbeux pour obtenir plus d’informations sur l’erreur en exécutant :
    bash
    ssh -vvv username@server-ip

Étape 5 : Vérifiez SELinux (si applicable)

Si SELinux est activé, il peut bloquer l’accès même si les permissions sont correctes. Vérifiez les journaux :
bash
sudo ausearch -m avc -ts recent

A lire :  Impossible d’installer VirtualBox sur Fedora : Solutions et Astuces

Tableau des Causes et Solutions

CauseSolution
Permissions incorrectesAjuster avec chmod 600 ~/.ssh/authorized_keys
Clé publique manquanteVérifier et ajouter la bonne clé dans authorized_keys
Mauvaise configuration de SSHMettre à jour sshd_config et redémarrer le service
Problème de copie de cléUtiliser ssh-copy-id ou copier manuellement

Erreurs Courantes et Comment les Éviter

  1. Oublier de sauvegarder les modifications du fichier de configuration : Toujours redémarrer le service SSH après avoir apporté des modifications.
  2. Ne pas vérifier les permissions : Vérifier les permissions des fichiers SSH est crucial pour éviter cette erreur.
  3. Incorrectement formater la clé : Assurez-vous que la clé publique ne comporte pas d’espaces ou de caractères supplémentaires.

Conseils de Prévention / Bonnes Pratiques

  • Utiliser des clés RSA : Cela améliore la sécurité par rapport à des mots de passe classiques.
  • Restreindre les accès : Limiter l’accès par utilisateur dans le fichier sshd_config.
  • Surveiller les journaux : Vérifiez régulièrement les journaux d’accès pour détecter des anomalies.
  • Appliquer des mises à jour de sécurité : Maintenez votre système et services à jour pour éviter les vulnérabilités.

FAQ

Qu’est-ce que l’erreur “permission denied publickey” ?

Cette erreur signifie que SSH n’a pas pu authentifier l’utilisateur avec la clé fournie.

Comment vérifier si ma clé SSH est chargée ?

Exécutez ssh-add -l pour lister les clés chargées dans l’agent SSH.

Que faire si je n’ai pas accès au fichier authorized_keys ?

Vous devrez trouver un moyen d’accéder au serveur en utilisant un autre compte ayant des permissions adéquates.

Comment réinitialiser les permissions de mon répertoire .ssh ?

Utilisez la commande suivante :
bash
chmod 700 ~/.ssh

A lire :  SELinux empêche Nginx de démarrer : Guide de résolution des problèmes

Puis-je utiliser une clé RSA pour une connexion SSH ?

Oui, SSH fonctionne très bien avec des clés RSA, qui sont considérées comme sécurisées.


En conclusion, le problème de permission denied publickey en SSH sur Linux peut être causé par divers facteurs allant des erreurs de configuration aux permissions inappropriées. En suivant les étapes de dépannage et en adoptant des pratiques préventives, vous pouvez résoudre ce problème efficacement et sécuriser vos connexions SSH.