Comme il n'a pas été explicitement mentionné, sshd est par défaut très strict sur les permissions pour les authorized_keys
fichiers. Donc, si authorized_keys
est en écriture pour quelqu'un d'autre que l'utilisateur ou peut être rendu en écriture par quelqu'un d'autre que l'utilisateur, il refusera l'authentification (à moins que sshd ne soit configuré avec StrictModes no
)
Ce que je veux dire par "peut être rendu accessible en écriture" est que, si l'un des répertoires parent est accessible en écriture à une personne autre que l'utilisateur, les utilisateurs autorisés à modifier ces répertoires peuvent commencer à modifier les autorisations de manière à pouvoir modifier / remplacer les allowed_keys.
De plus, si le /home/username/.ssh
répertoire n'appartient pas à l'utilisateur et que celui-ci ne dispose donc d'aucune autorisation pour lire la clé, vous pouvez rencontrer des problèmes:
drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
Notez que Jane ne possède pas le .ssh
fichier. Fixez ceci via
chown -R jane:jane /home/jane/.ssh
Ces types de problèmes d'autorisation de système de fichiers n'apparaîtront pas ssh -v
, et ils n'apparaîtront même pas dans les journaux sshd (!) Tant que vous n'avez pas défini le niveau de journalisation sur DEBUG.
- Modifier
/etc/ssh/sshd_config
. Vous voulez une ligne qui se lit LogLevel DEBUG
quelque part. Rechargez le serveur SSH en utilisant le mécanisme fourni par la distribution. ( service sshd reload
sur RHEL / CentOS / Scientific.) Un rechargement en douceur ne lâchera pas les sessions existantes.
- Essayez de vous authentifier à nouveau.
- Déterminez où vont les journaux de votre installation d’authentification et lisez-les. (IIRC,
/var/log/auth.log
sur les distributions basées sur Debian; /var/log/secure
sur RHEL / CentOS / Scientific.)
Il est beaucoup plus facile de comprendre ce qui ne va pas avec la sortie de débogage, qui inclut des erreurs d'autorisation de système de fichiers. N'oubliez pas de revenir au changement /etc/ssh/sshd_config
lorsque vous avez terminé!