Mon serveur exécute CentOS 5.3. Je suis sur un Mac exécutant Leopard. Je ne sais pas qui est responsable de cela:
Je peux très bien me connecter à mon serveur via l'authentification par mot de passe. J'ai suivi toutes les étapes de configuration de PKA (comme décrit sur http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html ), mais lorsque j'utilise SSH, il refuse même de tenter une vérification publickey. Utilisation de la commande
ssh -vvv user@Host
(où -vvv augmente la verbosité au niveau maximum) J'obtiens la sortie pertinente suivante:
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
suivi d'une invite pour mon mot de passe. Si j'essaie de forcer le problème avec
ssh -vvv -o PreferredAuthentications=publickey user@Host
Je reçois
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.
Donc, même si le serveur dit qu'il accepte la méthode d'authentification publickey et que mon client SSH y insiste, je suis réfuté. (Notez l'absence évidente d'une ligne "Offrant la clé publique:" ci-dessus.) Des suggestions?
Vérifiez que votre machine Centos a:
RSAAuthentication yes
PubkeyAuthentication yes
dans sshd_config
et assurez-vous que vous disposez des autorisations appropriées sur le répertoire ~/.ssh/de la machine centos.
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*
devrait faire l'affaire.
J'ai eu un problème similaire - un PC distant ne pouvait pas utiliser l'authentification par clé publique pour se connecter au serveur CentOs 6. Le problème dans mon cas était lié à SELinux - le répertoire personnel de l'utilisateur essayant de se connecter avait des contextes de sécurité de message. J'ai résolu cela en utilisant l'outil restorecon
ainsi:
restorecon -Rv /home
1- Vérifiez votre/etc/ssh/sshd_config, assurez-vous que vous avez
RSAAuthentication oui PubkeyAuthentication oui
2- Vérifiez le journal sécurisé de la machine distante, recherchez le journal détaillé des erreurs du démon sshd. par exemple. dans mon Ubuntu
# grep 'sshd'/var/log/secure | grep 'Authentification refusée' | tail -5 4 août 06:20:22 xxx sshd [16860]: Authentification refusée: propriété ou modes incorrects pour le répertoire /home/xxx[.______________ 4 août 06:20:22 xxx sshd [16860 ]: Authentification refusée: propriété ou modes incorrects pour le répertoire /home/xxx[.____.. 4 août 06:21:21 xxx sshd [17028]: Authentification refusée: propriété ou modes incorrects pour le répertoire /home/xxx 4 août 06:21:21 xxx sshd [17028]: Authentification refusée: propriété incorrecte ou modes pour le répertoire /home/xxx[.______________ 4 août 06:27:39 xxx sshd [20362]: Authentification refusée: propriété incorrecte ou modes pour le répertoire /home/xxx
Ensuite, vérifiez la propriété et les modes du répertoire/home/xxx, vous devrez peut-être l'exécuter
chmod 755 /home/xxx
Vérifiez que vos autorisations sont correctes et que la structure des fichiers (en particulier l'orthographe) est correcte, pour les machines locales et distantes. L'URL à laquelle vous vous référez les énonce tous, mais cela vaut la peine de vérifier que ce que vous avez correspond. Normalement, les autorisations génèrent une erreur pertinente.
Avez-vous vérifié que le sshd_config sur votre boîte CentOS 5.3 est défini pour autoriser PubkeyAuthentication ou RSAAuthentication?
Vérifiez les journaux du serveur SSH sur le système CentOS - cela peut fournir plus d'informations. Je ne sais pas si CentOS effectue la vérification de la clé ssh sur liste noire que fait Debian, mais j'ai vu des rejets de ssh publickey qui sont relativement silencieux en ce qui concerne la sortie -vvv, mais les journaux expliquaient assez clairement ce qui se passait
Je l'ai! Il s'avère que c'était un problème côté client. (Je pense que n'importe quel problème côté serveur aurait produit une sortie de débogage plus utile.) Pour des raisons inconnues de moi, sur mon Mac, le fichier/etc/ssh_config avait la ligne
PubkeyAuthentication = no
J'ai commenté cette ligne, et maintenant tout fonctionne bien.
Outre les modes de fichiers/répertoires, assurez-vous que la propriété est correcte! Un utilisateur doit posséder son propre répertoire personnel, .ssh/et ses fichiers.
Je devais courir chown -R $user:$user /home/$user
pour surmonter mes échecs ssh.
Cela me semble être un problème de configuration. Comme Daniel l'a suggéré, il y a deux choses à vérifier:
$HOME/.ssh/authorized_keys
sont lisibles; etVérifiez le nom d'utilisateur avec lequel vous essayez de vous connecter. Par défaut, c'est votre nom d'utilisateur sur la machine locale.
Vérifiez également qu'il peut fournir automatiquement une clé ou non, utilisez -i chemin/vers/clé sinon ou juste pour tester
je viens d'être pris au piège dans le même problème d'accès avec Fedora core 16 à cents 5,5
les journaux et verbeux étaient exactement les mêmes
le problème était la clé publique, il a obtenu de fausses données, les régénérer et les publier dans le serveur sshd_client, vous sshd_client envoie les informations de clé mais n'est pas reconnu par le serveur (il ne correspond à aucune des clés de authorized_keys)
La sortie du client comme dans ssh -v
révélera qu'il y a un problème à une certaine étape du protocole, mais quand il est dû à quelque chose sur le serveur, le client ne sera pas informé de la cause. Vérifiez les fichiers journaux du serveur pour savoir ce qui ne va pas. Vous devez probablement être root
pour avoir les autorisations nécessaires. Par exemple, pour un sshd
configuré pour se connecter à syslog, vous pouvez trouver les messages dans /var/log/secure
. Comme ceux-ci:
Authentication refused: bad ownership or modes for directory /home/you/.ssh
Authentication refused: bad ownership or modes for file /home/you/.ssh/authorized_keys
La raison dans ce cas était un (stupide) défaut default
de 0002
. Cela signifie, accès en écriture pour le groupe. (Groupname = nom d'utilisateur, mais quand même.) Le démon SSH ne fera pas confiance aux fichiers qui peuvent être falsifiés par d'autres que l'utilisateur (enfin, et root
, bien sûr). Vous pouvez résoudre le problème en utilisant chmod
.
chmod 700 ~/.ssh # solve the issue
chmod 720 ~/.ssh # reproduce the issue
# or similar for a file