109 votes

SSH Public Key - Aucune méthode d'authentification disponible (le serveur a envoyé la clé publique)

J'ai un serveur 12.10 configuré dans une machine virtuelle dont le réseau est configuré en mode ponté (il sera essentiellement considéré comme un ordinateur connecté à mon commutateur).

J'ai installé opensshd via apt-get et j'ai pu me connecter au serveur en utilisant putty avec mon nom d'utilisateur et mon mot de passe.

J'ai ensuite essayé d'utiliser l'authentification par clé publique/privée. J'ai fait ce qui suit :

  1. J'ai généré les clés en utilisant PuttyGen.
  2. Déplacement de la clé publique vers /etc/ssh/myusername/authorized_keys (J'utilise des répertoires personnels chiffrés).
  3. Mettre en place sshd_config comme ça :

    PubkeyAuthentication yes
    AuthorizedKeysFile /etc/ssh/%u/authorized_keys
    StrictModes no
    PasswordAuthentication no
    UsePAM yes

Lorsque je me connecte à l'aide de Putty ou WinSCP, j'obtiens une erreur disant Aucune méthode d'authentification disponible (le serveur a envoyé la clé publique).

Si je cours sshd en mode débogage, je vois :

PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup

Pourquoi cela se produit-il et comment puis-je y remédier ?

99voto

Chris Burgess Points 161

Problème résolu :

On dirait qu'il y a eu un problème avec mon fichier de clé publique. PuttyGen va créer un fichier de clé publique qui ressemble à :

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20121022"
AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwu
a6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOH
tr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/u
vObrJe8=
---- END SSH2 PUBLIC KEY ----

Cependant, cela ne fonctionnera pas, donc ce que vous devez faire est d'ouvrir la clé dans PuttyGen, puis de la copier à partir de là (ce qui fait que la clé est dans le bon format et sur une seule ligne) :

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

Collez ceci dans authorized_keys alors cela devrait fonctionner.

39voto

Hunter Points 419
  1. Modifier le /etc/ssh/sshd_config archivo.
  2. Changement PasswordAuthentication y ChallengeResponseAuthentication à yes .

3a. Redémarrez ssh /etc/init.d/ssh restart .
OU
3b. mieux vaut que vous utilisiez service sshd restart

14voto

Dave Points 141

Juste un conseil qui, je l'espère, pourra aider quelqu'un d'autre à éviter les maux de tête que j'ai eus. F21 a raison de dire que vous devez copier la clé hors de la fenêtre PuTTYGen au lieu de sauvegarder le fichier, mais après avoir copié, la façon dont vous collez peut avoir un impact significatif sur le fait que votre clé fonctionne ou non. Certains éditeurs modifieront le texte lorsque vous le collez, ou feront quelque chose avec les nouvelles lignes ou autre chose qui rendra le fichier authorized_keys invalide.

Ce que j'ai trouvé le moins susceptible d'être cassé est de faire écho à la chaîne complète et de rediriger la sortie vers le fichier. En cliquant avec le bouton droit de la souris dans PuTTY pour coller la chaîne de touches dans la ligne de commande, cela donne ceci (avec l'exemple donné ci-dessus) :

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

Vous allez vous retrouver avec ça :

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

Un autre avantage de cette méthode est que vous pouvez ajouter plusieurs clés de cette façon en utilisant >> pour ajouter au lieu de > pour écraser, par exemple :

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

J'espère que cela aidera quelqu'un.

12voto

Sharad Points 121

Nous utilisions déjà le bon type de clé (ppk au lieu de pem) .

Dans notre cas, il s'agissait d'un problème de permissions de fichiers pour authorized_keys dans le dossier utilisateur du serveur. Il doit être -rw-r--r-- ... C'était -rw-rw-r--

ssh est très pointilleux sur les perms des fichiers.

9voto

Kale Points 1

SOLVÉ :

  1. Vous devez télécharger le puttyGEN et générer une clé publique et une clé privée.
  2. J'ai attribué un mot de passe à ma clé privée.
  3. puis configurer la clé privée dans putty. Putty->SSH->Auth->Browse to your private.
  4. Assurez-vous que vous avez le même chemin pour la clé privée et la clé publique.
  5. Vous devez configurer la clé publique sur le serveur. (Dans mon cas, j'ai parlé avec le gars du serveur et lui ai demandé s'il pouvait ajouter ma clé publique au serveur). Vous avez besoin de la clé publique de l'autre côté (serveur) de la connexion.

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