Amazon EC2 Permission denied (publickey)
Cela semble être un problème commun, mais mon cas précis semble un peu différent.
J'ai créé une nouvelle instance Amazon EC2 en utilisant les outils en ligne de commande et connecté via SSH et fait un peu de travail de configuration.
Initialement, cependant, je ne pouvais pas ssh sur l'instance, j'ai dû arrêter et de redémarrer l'instance, alors je pourrais connecter. Avant de redémarrer, je viens de recevoir la réponse.
Permission denied (publickey).
Qui a été la nuit dernière, ce matin, je vais retourner à la même instance et maintenant tout ce que j'obtiens est
Permission denied (publickey).
J'ai essayé de redémarrer l'instance sans joie.
Quelqu'un peut me pointer dans la bonne direction ici? La même commande que celle travaillé la nuit dernière ne fonctionne plus, je me connecte à partir de mon Macbook Pro.
Vous devez vous connecter pour publier un commentaire.
Je vais répondre à ma propre question au cas où quelqu'un d'autre voit la même chose... la nuit Dernière je l'avais fait:
ensuite la connexion avec:
Ce matin, j'ai essayé la même chose et n'a pas pu se connecter. Mais cela
me dans.
À l'aide de
ssh-add
sur la paire de clés à me dans. Je devinessh-add
ne fonctionne qu'à l'intérieur de la coque que j'avais faite en. Lorsque j'ai fermé la fenêtre du terminal et a ouvert un autre, je n'avais plus que la paire de clés disponibles sans être explicite.~/.ssh/config
. Si vous mettez unHost <hostname>
la ligne suivie par unUser <username>
ligne (en retrait), vous avez de la documentation qui permet de résoudre le problème d'avoir à spécifier les noms d'utilisateur. Vous pouvez également inclure unIdentityFile <path/filename>
ligne (en retrait). - Je l'expliquer ci-dessous stackoverflow.com/a/29149331/117471Ce qui se passait pour moi parce que je n'utilisais pas le bon nom. J'ai été en mesure de se connecter lors de l'utilisation d'un AMI utilisés dans un tutoriel, j'ai été suivant, mais quand j'ai essayé d'utiliser un autre AMI (ubuntu + LAMPE de Bitnami) je voudrais obtenir le
Permission denied (public key).
erreur. J'ai finalement réalisé que si j'ai changé le nom d'utilisateur pour le tutoriel ami deubuntu
àec2-user
je reçois la même erreur.Donc un rapide google indique que le nom d'utilisateur pour Bitnami AMIs est
bitnami
. Le problème est résolu.ubuntu
que le nom d'utilisateur.J'ai rencontré un problème similaire et il s'est avéré être les autorisations sur le dossier de base. Heureusement, j'avais encore une autre connexion ssh ouvert donc j'ai pu consulter le journal sur l'instance ec2:
$ sudo less /var/log/secure
qui contenait:
Cela a été fixée par l'émission de la commande:
$ chmod og-rwx /home/ec2-utilisateur
J'espère que cela aide quelqu'un d'autre.
Veuillez noter qu'après le redémarrage de l'instance, le nom dns changé. J'ai craqué pour ce, plusieurs fois. La clé était toujours valide, mais le "servername" changé.
Merci!
J'apprécie vraiment @Trevor de réponse ici. Je vais ajouter ce petit truc que j'utilise maintenant pour éviter ce problème à l'avenir.
Commodité
Parce que vous avez pour créer une paire de clés différentes pour chaque zone de disponibilité, il devient très dispute tous les gérer et les commandes qui les utilisent. Avec la bonne configuration dans
~/.ssh/config
ma commande ssh est aussi simple que:C'est là le public DNS d'un serveur dans l'Ouest AMÉRICAIN 2 de la zone de disponibilité. Le bon nom d'utilisateur et la clé sont choisis en raison de ceci:
Si l'instance EC2 utilise Ubuntu ami 14.04. Essayez d'ajouter 'ubuntu@' devant l'instance EC2 ip.
Assurez-vous que chemin d'accès à votre clé privée est correct.
Si votre client ssh ne peut pas trouver la clé privée que vous essayez de fournir, bizarrement, il ne vous donnera pas une erreur! il ne peut pas utiliser cette clé. Il va utiliser ce que jamais la clé que vous avez sous .ssh/id_dsa et .ssh/id_ecdsa qui bien sûr sera faible l'authentification par clé publique.
J'ai résolu ce problème en copiant le contenu de ~/.ssh/id_rsa.pub de ~/.ssh/authorized_keys sur l'instance EC2.
Cela est spécifié dans la documentation: http://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html
Alors je pourrais ssh à l'aide de cette commande:
J'ai aussi reçu de: Permission denied.
J'ai utilisé :
et la réponse a été :
Entrez la commande :
Mais la réponse était vide
Donc, je pense que le pen fichier a quelque chose de mal à propos de format.
Ensuite, j'ai trouvé la plume de fichiers téléchargés à partir web d'ec2, et l'a déplacé plus de. Avant cela, j'ai créé un nouveau fichier et analysé le texte de la téléchargé le fichier pem dans le répertoire ".ssh", puis:
Qui a réussi.
J'ai passé toute la journée à la recherche de l'internet pour la réponse. Mon problème exactement les mêmes. Je jouait avec problème de permission, changé d'avant en arrière, mais aucun n'a résolu mon problème.
Après test avec une nouvelle clé et démarrer/mettre fin à un couple d'instances, finalement, j'ai trouvé qu'il a à faire avec le même nom de la clé dans les différentes régions.
C'est de cette façon "Permission denied (publickey)" qui m'est arrivé:
1. Suivre la pratique de livre, sélectionnez l'us-east-1 comme valeur par défaut de la zone
2. Créer un nom de clé "maclé"
3. Explorer AWS monde en suivant les exemples de ce livre.
4. Un jour, essayez de tester les vitesses de Sydney zone, passer à Sydney Zone par défaut sur.
5. Créer une autre clé, nommé comme "maclé" sans y penser, mais ne pas l'utiliser pour se connecter via la cli pour un couple de jours.
6. Essayez de vous connecter à AWS l'aide de la cli.
7. A obtenu "Permission denied (publickey)".
8. Passé de nombreuses heures à déboguer ssh question jusqu'à ce que je avis la clé de la zone de problème.
Espère que cela pourrait aider les débutant comme moi.
Pour éviter ce problème, je pense que la meilleure pratique au nom d'une clé, c'est de joindre une région en elle.
J'ai changé les permissions 600, bien que les autorisations sur le fichier pem ont été 644 déjà. Et ça a fonctionné :p j'espère que ça aide
Eu le même problème, voici ce que vous devez faire.
Tout d'abord, si vous avez Windows, utilisez le Babun ligne de commande, qui est comme le Linux un.
Une fois que vous avez commande en ligne, l'ouvrir et le type
ssh-i [key pair path] [username]@[EC2 public IP].
Pour trouver le chemin de la paire de clés, allez dans le dossier où votre clé est stockée, maintenez la touche maj enfoncée et cliquez à droite et cliquez sur copier le chemin d'accès, et de le coller dans l'endroit où le chemin se poursuit dans la commande ci-dessus. Vous n'aurez probablement obtenir "" les marques sur les côtés extérieurs de la voie que vous venez de coller, et \ backslash. Supprimer les " marques et de remplacer les \ backslash régulièrement des slash /. Il a travaillé dans une situation comme celle que j'avais, bonne chance à vous.
Connexion à EC2 à partir de la cli est un peu difficile, au moins pour la première fois.
Si vous allez à `
", alors vous verrez la boîte de dialogue description de la façon de se connecter à elle. Partie il est indiqué ci-dessous.
Si vous utilisez le numéro 4 sans précédent avec
ec2-user@
vous obtiendrezIl suffit de copier et coller de celui mentionné ci-dessous dans l'Exemple:.
Dans mon cas, la raison pour cela est que j'avais changé les permissions du répertoire racine du dossier avec la commande chmod. Dans le site web AWS, ils décrivent un long chemin pour changer les autorisations de retour avec une autre instance temporaire. Cependant, je viens de résiliation de l'ancienne instance et a lancé un autre et cette fois ne pas modifier les autorisations du répertoire racine et tout est ok.