8 votes

Authentification de la clé publique SSH - le serveur accepte la clé mais l'authentification ne réussit pas.

J'aide un ami qui a des difficultés à se connecter, en utilisant l'authentification par clé publique, à un serveur que je maintiens. L'authentification par clé publique fonctionne bien pour quelques autres utilisateurs. Bien sûr, la clé publique de mon ami est dans authorized_keys-file sur le serveur.

debug1: Host 'xxxxx' is known and matches the RSA host key.
debug1: Found key in /home/xxx/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Unspecified GSS failure.  Minor code may provide more information
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xxx/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: email@address.com
debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/xxx/.ssh/id_dsa
debug1: Trying private key: /home/xxx/.ssh/id_ecdsa
debug1: Next authentication method: password

La ligne suivante n'a pas de sens pour moi

Server accepts key: pkalg ssh-rsa blen 279

Puisqu'il semble que le serveur pense que la clé publique est parfaitement correcte, pourquoi continue-t-il à utiliser l'authentification par mot de passe au lieu d'authentifier l'utilisateur ?

6voto

RedGrittyBrick Points 78148

Je pense que vous montrez les journaux côté client/la sortie de débogage. Je regarderais les journaux côté serveur car ils donnent généralement plus de détails sur les éléments suivants pourquoi le serveur a rejeté une tentative d'authentification par clé publique.

Par exemple, des autorisations non sécurisées sur les répertoires personnels ou .ssh des utilisateurs.

4voto

Dans mon cas, le problème était que l'utilisateur sous lequel il tentait de se connecter était root, et j'avais désactivé la connexion ssh root (ce que tout le monde devrait probablement faire). Donc, assurez-vous que votre ami tente de se connecter via le compte utilisateur correct, non root.

2voto

Tgr Points 2753

J'ai récemment fait cette expérience avec l'interface SSH de Gerrit. Le problème était que mon agent SSH local offrait un tas de clés différentes au serveur Gerrit, et après une certaine limite, le serveur a tout simplement refusé d'accepter d'autres clés (mais a quand même répondu avec le symbole Server accepts key ). Je ne sais pas si ce comportement est spécifique à Gerrit ou s'il s'agit d'un comportement générique d'OpenSSH.

La solution consistait à forcer la sélection de la bonne touche dans le champ ~/.ssh/config :

Host gerrit.example.org
  IdentityFile ~/path/to/my_key
  IdentitiesOnly yes

Après s'être assuré que ~/path/to/my_key.pub existe (il peut être créé avec ssh-keygen -f ~/path/to/my_key -y > ~/path/to/my_key.pub ), l'agent ssh pouvait fournir la clé sans avoir à entrer à nouveau la phrase de passe, mais ne fournissait aucune autre clé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X