La connexion SSH demande un mot de passe bien que la clé soit acceptée

12

On me demande un mot de passe même s'il semble que ma clé SSH est acceptée. Pour autant que je sache, la ligne "Le serveur accepte la clé: pkalg ssh-rsa blen 277" dans les journaux ci-dessous signifie que ma clé est acceptée.

Voici les journaux de débogage:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sam/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp <<HASH REDACTED>>
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/sam/.ssh/id_dsa
debug1: Trying private key: /home/sam/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1

Aide très appréciée, tous ceux que j'ai trouvés qui ont des problèmes SSH échouent à un moment antérieur que je vois.

SamStephens
la source

Réponses:

11

Votre clé privée n'a certainement pas été acceptée, elle a seulement été tentée. Il existe un certain nombre de façons dont l'authentification basée sur une clé SSH peut échouer, et la journalisation n'est pas vraiment géniale, donc le débogage de ce problème particulier est l'un de mes problèmes personnels. J'ai constaté que l'erreur est généralement le résultat de l'une des situations suivantes.

  • Votre ~/.ssh/authorized_keysdossier est trop ouvert. Pour votre propre protection, sshdessayez de vous protéger de vous-même. Si les autorisations sur votre fichier de clés autorisées, l'authentification échouera. Courez chmod -R go-rwx ~/.ssh.
  • Votre clé publique ~/.ssh/authorized_keysest incorrecte. Cela peut être dû à un certain nombre de problèmes, mais le plus courant est un problème de copier-coller. Certains terminaux, lorsqu'ils copient / collent sur des écrans, interpréteront un retour à la ligne comme une nouvelle ligne. Chaque entrée du authorized_keysfichier doit être une seule ligne. Vous pouvez vérifier cela en modifiant la taille de votre émulateur de terminal et en voyant s'il y a une interruption, en comparant la sortie de par wc -l ~/.ssh/authorized_keysrapport au nombre de clés qui devraient s'y trouver, ou tout ce qui vous convient le mieux. Assurez-vous simplement que chaque touche est une ligne et tout devrait bien se passer.
Scott Pack
la source
7

La sortie ssh -v que vous avez collée suggère qu'elle a essayé d'utiliser la clé mais cela n'a pas fonctionné, elle est donc passée au clavier interactif.

Avez-vous vérifié le journal d'authentification sur le serveur auquel vous vous connectez? (par exemple, /var/log/auth.log). Si votre configuration à l'extrémité distante est incorrecte, par exemple de mauvaises autorisations, alors ssh -v (ou -vv ou -vvv) ne vous le dira pas, mais il sera enregistré par sshd.

Daniel Lawson
la source
/var/log/auth.log a retenu la réponse pour moi: "Authentification refusée: mauvaise propriété ou modes pour le répertoire / root"
kevlar1818
5

Dans mon cas, le dossier /var/log/authlogmontrait:

[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory 

J'avais vérifié la propriété / les autorisations correctes .sshmais $HOMEj'avais 777 autorisations. Définition des autorisations 755 sur $HOMEsftp autorisé pour fonctionner. Merci encore.

Robin AA
la source
2

Si vous avez accès au serveur (directement ou via une autre connexion), vérifiez les connexions du serveur (par exemple) /var/log/sshdou en /var/log/securefonction de votre système

Cela est généralement dû à une erreur d'autorisation sur votre ~/.ssh/authorized_keysfichier. Assurez-vous que ce n'est pas lisible par tout le monde, mais surtout qu'il est lisible par l'utilisateur (parfois un utilisateur de service) exécutant sshd

Cendre
la source
1
Quel système utilise /var/log/sshd? Les systèmes que je connais utilisent soit /var/log/auth.logou /var/log/secure.
kasperd
1

Les droits d'accès ~/.ssh/authorized_keysà distance sont importants ( 600pour mes systèmes RHEL et Solaris)

Les autorisations de votre répertoire personnel à distance sont importantes ( 700dans mes systèmes)

À la fin, exécuter sshdsur une machine distante en mode débogage sur un autre port peut être utile:

sudo /usr/sbin/sshd -p 5555 -dd

5555est un exemple de port, vous pouvez le changer. Pour plus d'informations à cet égard, vous pouvez voir: http://ubuntuforums.org/archive/index.php/t-2219973.html

sepehr hakimi
la source
0

J'ai constaté qu'il y a un problème si j'utilise le sshdservice. Pour éviter ce problème, arrêtez le sshdservice avec service sshd stoppuis démarrez le sshddémon à partir de l'invite de commandes avec sudo /usr/sbin/sshd.

Yoganand Bijapur
la source
0

Essayer

/sbin/restorecon -r /root/.ssh

Un problème possible avec la définition des autorisations.

abkrim
la source