SSH Public Key - Aucune méthode d'authentification prise en charge disponible (clé publique envoyée par le serveur)

53

J'ai une configuration de serveur 12.10 sur une machine virtuelle dont le réseau est bridgé (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 un mastic avec mon nom d'utilisateur et mon mot de passe.

Je me suis alors mis à essayer de l’utiliser pour utiliser l’authentification par clé publique / privée. J'ai fait ce qui suit:

  1. Génération des clés avec PuttyGen.
  2. Déplacement de la clé publique vers /etc/ssh/myusername/authorized_keys (j'utilise des répertoires personnels chiffrés).
  3. Configurez sshd_config comme ça:

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

Lorsque je me connecte avec putty ou WinSCP, je reçois un message d'erreur indiquant: Aucune méthode d'authentification prise en charge disponible (clé publique envoyée par le serveur).

Si je lance 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 résoudre ce problème?

    
posée F21 22.10.2012 - 03:10
la source

6 réponses

52

Problème résolu:

On dirait qu’il ya 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, vous devez donc ouvrir la clé dans PuttyGen, puis la copier à partir de là (la clé est au bon format et sur 1 ligne):

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

Collez ceci dans authorized_keys alors ça devrait marcher.

    
réponse donnée F21 22.10.2012 - 03:47
la source
8

Juste un conseil, je l'espère, peut aider quelqu'un d'autre avec les maux de tête que j'ai eu. F21 a raison de devoir copier la clé hors de la fenêtre PuTTYGen au lieu d'enregistrer le fichier, mais après la copie, la manière dont vous collez peut avoir un impact significatif sur le bon fonctionnement de votre clé. Certains éditeurs vont modifier le texte au fur et à mesure que vous collez, ou faire quelque chose avec de nouvelles lignes ou quelque chose qui invalide le fichier authorized_keys.

Ce que j’ai trouvé le moins susceptible de casser, c’est de faire écho à la chaîne complète et de rediriger la sortie vers le fichier. En faisant un clic droit dans PuTTY pour coller la chaîne de clé dans la ligne de commande, cela fonctionne comme ceci (avec l'exemple ci-dessus):

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

Vous allez vous retrouver avec ceci:

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 & gt; & gt; ajouter au lieu de & gt; pour écraser, par exemple:

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

J'espère que ça aide quelqu'un.

    
réponse donnée Dave 27.02.2013 - 02:04
la source
5

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

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

ssh est très compliqué sur les perms de fichiers.

    
réponse donnée Sharad 13.03.2015 - 19:50
la source
4

Dans mon cas, la raison était que le fichier de clé privée (.ppk) avait été supprimé dans l’agent d’authentification Putty, par exemple Pageant. Je viens de le mettre à jour sur Pageant et la connexion a fonctionné parfaitement après cela.

    
réponse donnée Marko H 17.01.2014 - 18:58
la source
4
  1. Modifiez le fichier /etc/ssh/sshd_config .
  2. Remplacez PasswordAuthentication et ChallengeResponseAuthentication par yes .

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

    
réponse donnée Hunter 19.08.2015 - 14:35
la source
3

RESOLU:

  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. alors configurez la clé privée dans le mastic. Putty- & gt; SSH- & gt; Auth- & gt; Naviguez jusqu'à votre privé.
  4. Assurez-vous d'avoir 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 discuté avec le 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.
réponse donnée Matt.sinner 17.04.2013 - 11:38
la source

Lire d'autres questions sur les étiquettes