219 votes

SSH Permission refusée (publickey)

J'essaie de me connecter à un Linode (sous Ubuntu 12.04 LTS) à partir de ma machine locale (également sous Ubuntu 12.04 LTS).

J'ai créé une clé privée et une clé publique sur ma machine locale et copié ma clé publique dans le fichier authorized_keys de mon Linode. Cependant, chaque fois que j'essaie de me connecter en ssh à mon Linode, j'obtiens le message d'erreur suivant Permission denied (publickey) .

Ce n'est pas un problème avec la façon dont ssh est configuré sur mon Linode parce que je peux y accéder depuis ma machine Windows en utilisant l'authentification par clé.

Dans mon .ssh sur ma machine Ubuntu locale, j'ai mes id_rsa y id_rsa.pub fichiers. Dois-je créer un fichier authorized_keys sur ma machine locale ?

EDIT : Voici ce que j'obtiens lorsque j'exécute ssh -vvv -i id_rsa [youruser]@[yourLinode] :

debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).

1voto

mau Points 127

Voici ce qui a fonctionné pour moi, la solution n'est pas la mienne mais je préfère l'écrire ici au cas où quelqu'un d'autre aurait le même problème.

L'auteur original l'a posté ici : digital-ocean-public-access-key-denied

sudo nano /etc/ssh/sshd_config

Remplacez ceci

UsePAM yes
IgnoreUserKnownHosts no
PasswordAuthentication no

Avec cette

UsePAM no
IgnoreUserKnownHosts no
PasswordAuthentication yes

Sauvegardez le fichier et redémarrez ssh

reload ssh

ssh devrait fonctionner maintenant en demandant un mot de passe

1voto

Teemu Leisti Points 274

J'ai eu le même problème que celui décrit dans la question. Le résultat de l'exécution de ssh -vvv -i id_rsa [youruser]@[yourLinode] sur la machine cliente était similaire à celle décrite dans la question. J'ai vérifié toutes les autorisations de fichiers et de répertoires comme indiqué dans les autres réponses, et elles étaient correctes.

Il s'est avéré que lors de la copie du fichier généré id_rsa.pub sur la machine serveur, en tant que fichier ~username/.ssh/authorized_keys , J'avais accidentellement omis le mot ssh-rsa depuis le début. Le fait de l'ajouter a résolu le problème.

1voto

Madman Points 1302

J'avais ajouté un mauvaise clé au serveur. Comme je n'ai pas utilisé la commande avec une option pour spécifier une certaine clé, elle a ajouté le fichier clé standard.

Assurez-vous que vous avez utilisé ssh-copy-id -i CORRECT_KEY.pub

Cette mauvaise clé a bien fonctionné avec un client, car ce client avait aussi cette clé. Mais lorsqu'on essaie de se connecter avec un autre client au même serveur, cela échoue évidemment.

De plus, ce qui pourrait être intéressant, c'est que vous obtenez plus de logging avec ssh -vv au lieu de l'unique -v .

0voto

Glutanimate Points 20429

Dans mon cas, le problème était dû à la copie d'un fichier .ssh d'une ancienne machine. Il s'est avéré que mon ancienne configuration SSH utilisait des clés DSA qui ont depuis été déprécié . Le passage à une nouvelle paire de clés, cette fois basée sur RSA, a résolu le problème pour moi.

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