228 votes

Permission refusée (publickey). SSH de l'Ubuntu local vers le serveur Amazon EC2

J'ai une instance d'une application fonctionnant dans le nuage sur une instance Amazon EC2, et je dois m'y connecter à partir de mon Ubuntu local. Cela fonctionne bien sur un Ubuntu local et aussi sur un ordinateur portable. J'ai reçu ce message, Permission denied (publickey). lorsque vous essayez de vous connecter en SSH à l'EC2 à partir d'une différents local Ubuntu.

Je pense qu'il peut y avoir des problèmes avec les paramètres de sécurité sur l'Amazon EC2, qui a un accès IP limité à une instance ; ou peut-être qu'un certificat doit être régénéré.

Quelqu'un connaît-il une solution à l'erreur "Permission refusée" ?

12 votes

"Ça marchait avant" -- avant ce que ?

0 votes

J'ai une instance Elastic Beanstalk EC2. En août 2013, la solution était d'accéder à l'instance en tant qu'utilisateur ec2-user, ce qui a fait disparaître l'erreur Permission Denied (publicKey). Viz : ssh -i ./mike-key-pairoregon.pem ec2-user@ec2-some-address.us-west-2.compute.amazonaws.com. Bien sûr, vous devez effectuer toutes les autres opérations, comme indiqué dans le tableau suivant stackoverflow.com/questions/4742478/

4 votes

Vous obtenez ce problème si vous avez spécifié un nom d'utilisateur incorrect. La documentation d'aws ( docs.aws.amazon.com/AWSEC2/latest/UserGuide/ ) donne actuellement un exemple avec le nom d'utilisateur ec2-user [ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com], alors que ma (vieille) boîte ubuntu a un nom d'utilisateur ubuntu, donc quand j'ai utilisé l'exemple j'ai reçu cette erreur, changer pour le nom d'utilisateur correct résout le problème.

11voto

Vérifiez votre /etc/ssh/sshd_config fichier. Là, trouvez la ligne qui dit

PasswordAuthentication no

Cette ligne doit être modifiée pour dire oui au lieu de non. Aussi, redémarrez le serveur sshd après.

sudo /etc/init.d/ssh restart

21 votes

Cela rendrait le serveur moins sûr.

0 votes

C'est le problème que j'ai rencontré : Je voulais créer un compte pour un autre utilisateur, en m'authentifiant avec un simple mot de passe. Je voulais également pouvoir me connecter en tant que moi-même à partir d'endroits où je n'avais pas ma clé privée.

2 votes

Comment pouvons-nous aller à /etc/ssh/sshd_config - si nous ne pouvons même pas accéder au serveur ?

7voto

codewise Points 436

Cela n'est peut-être pas pertinent pour l'affiche actuelle, mais cela pourrait aider d'autres personnes qui trouveraient cette information en cherchant des réponses à des situations similaires. Au lieu de laisser Amazon générer la paire de clés ssh, je vous recommande de télécharger votre propre clé ssh publique standard par défaut sur Amazon et de la spécifier lorsque vous exécutez une instance EC2.

Cela vous permet d'abandonner la syntaxe de type "-i" dans ssh, d'utiliser rsync avec des options standard et d'utiliser la même clé ssh dans toutes les régions EC2.

J'ai écrit un article sur ce processus ici :

Télécharger des clés ssh personnelles vers Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

0 votes

+1 J'ai cherché cette question exactement pour cette raison.

0 votes

Je vois cette erreur en suivant votre article. regions=$(ec2-describe-regions | cut -f2) Option requise '-K, --private-key KEY' manquante (-h pour l'utilisation)

0 votes

@KashifAli Vous voudrez configurer les informations d'identification de l'outil de ligne de commande de l'API EC2 afin de ne pas avoir à transmettre les informations d'identification sur chaque ligne de commande.

5voto

dkpatt Points 317

Étrangement, mon problème s'est avéré être que le serveur avait été redémarré et qu'un nouveau nom DNS lui avait été attribué. J'utilisais l'ancien nom DNS. Je sais que cela semble stupide, mais il m'a fallu un certain temps pour comprendre.

0 votes

Merci ! C'était exactement mon problème. Je n'avais pas réalisé que le nom DNS changeait quand on redémarre une instance.

0 votes

Dans mon cas, l'URL *.compute.amazonaws.com a changé lorsque j'ai attribué une IP élastique.

2voto

Naftuli Kay Points 1608

Si vous essayez de vous connecter à un téléphone CyanogenMod utilisant Dropbear, vous devez exécuter les lignes suivantes pour vous assurer que tout est bien autorisé :

chmod 600 /data/dropbear/.ssh/authorized_keys

o

chmod 700 /data/dropbear/.ssh/authorized_keys # In case of MacOS X 10.6-10.8

et

chmod 755 /data/dropbear/ /data/dropbear/.ssh

Cela a réglé le problème pour moi, sinon rien ne peut se connecter.

0 votes

"lors de la tentative d'accès SSH à EC2 sur une autre Ubuntu locale".

1 votes

Et si je n'ai pas clés_autorisées ?

2voto

uichin Points 21

Si vous utilisez CentOS 5, vous voudrez peut-être configurer StrictModes no en /etc/ssh/sshd_config . Je partage le répertoire /home en utilisant NIS/NFS, et j'ai défini toutes les permissions correctement, mais le mot de passe m'est toujours demandé. Après avoir défini StrictModes no le problème a disparu !

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