Autorisation refusée (publickey) lorsque L'accès SSH à L'instance Amazon EC2 [fermé]

Je veux utiliser mon instance Amazon ec2 mais j'ai rencontré l'erreur suivante:

Permission denied (publickey).

J'ai créé ma paire de clés et téléchargé .fichier pem.

Donné:

chmod  600 pem file.

Ensuite, cette commande

ssh -i /home/kashif/serverkey.pem  ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com

, Mais avoir cette erreur:

Permission denied (publickey)

Aussi, comment puis-je me connecter avec filezilla pour charger/télécharger des fichiers?

355
demandé sur SkyWalker 2013-08-31 22:36:18

29 réponses

Ce message d'erreur signifie que vous n'avez pas réussi à vous authentifier.

Ce sont des raisons communes qui peuvent causer que:

  1. essayer de se connecter avec la mauvaise clé. Êtes-vous sûr que cette instance utilise cette paire de touches?
  2. essayer de se connecter avec le mauvais nom d'utilisateur. ubuntu est le nom d'utilisateur de la distribution AWS basée sur ubuntu, mais sur d'autres c'est ec2-user (ou admin sur certains Debians, selon la réponse de Bogdan Kulbida) (peut aussi être root, fedora, Voir ci-dessous)
  3. essayer pour connecter le mauvais hôte. Est-ce le bon hôte auquel vous essayez de vous connecter?

Notez que 1. se produira également si vous avez foiré le fichier /home/<username>/.ssh/authorized_keys sur votre instance EC2.

A propos de 2., les informations sur le nom d'utilisateur que vous devez utiliser font souvent défaut dans la description de L'image AMI. Mais vous pouvez en trouver dans la documentation AWS EC2, bullet point 4. : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

Utilisez la commande ssh pour vous connecter à l'instance. Vous pourrez spécifier la clé privée (.pem) fichier et user_name@public_dns_name. Pour Amazon Linux, le nom d'utilisateur est ec2-utilisateur. Pour RHEL5, le nom d'utilisateur est root ou ec2-user . Pour Ubuntu, le nom d'utilisateur est ubuntu. Pour Fedora, le nom d'utilisateur est soit fedora ou ec2-utilisateur. Pour SuSE Linux, le nom d'utilisateur est root . Sinon, si ec2-user et root ne fonctionnent pas, vérifiez avec votre AMI Fournisseur.

Enfin , sachez qu'il existe de nombreuses autres raisons pour lesquelles l'authentification échouerait. SSH est généralement assez explicite sur ce qui a mal tourné si vous souhaitez ajouter l'option -v à votre commande SSH et lire la sortie, comme expliqué dans de nombreuses autres réponses à cette question.

589
répondu Thibault D. 2015-05-27 06:30:37

Dans ce cas, le problème provient d'une paire de clés perdue. À ce sujet:

  • il n'y a aucun moyen de changer la paire de clés sur une instance . Vous devez créer une nouvelle instance qui utilise une nouvelle Paire de Clés.
  • , Vous pouvez contourner le problème si votre instance est utilisée par une application sur Elastic Beanstalk.

, Vous pouvez suivre ces étapes:

  1. accès à AWS Management Console
  2. Ouvrir Haricot Élastique Onglet
  3. Sélectionnez votre application dans Toutes les Applications onglet
  4. dans le menu de gauche sélectionnez Configuration
  5. Cliquez sur leInstances Vitesse
  6. dans le formulaire Server Vérifiez l'entrée EC2 key Pair et sélectionnez votre nouvelle paire de clés. Vous devrez peut-être actualiser la liste pour voir une nouvelle paire de clés que vous venez de créer.
  7. Enregistrer
  8. Elastic Beanstalk créera pour vous de nouvelles instances associées à la nouvelle clé pair.

En général, rappelez-vous que vous devez autoriser votre instance EC2 à accepter le trafic SSH entrant.

Pour ce faire, vous devez créer une règle spécifique pour le Groupe de Sécurité de votre instance EC2. Vous pouvez suivre ces étapes.

  1. accès à AWS Management Console
  2. Ouvrir onglet EC2
  3. dans la liste Instances Sélectionnez l'instance qui vous intéresse
  4. dans l'onglet Description chek le nom de la Groupe de sécurité votre instance utilise.
  5. Encore une fois dans l'onglet Description Cliquez sur Afficher les règles et vérifiez si votre groupe de sécurité a une règle pour le trafic SSH entrant sur le port 22
  6. Si non, dans Network & Security menu select Groupe de Sécurité
  7. Sélectionnez le groupe de sécurité utilisé par votre instance et cliquez sur onglet entrant
  8. à gauche de L'onglet Inbound, vous pouvez composer une règle pour SSH inbound circulation:
    • Créer une nouvelle règle: SSH
    • Source: adresse IP ou sous-réseau à partir duquel vous souhaitez accéder à l'instance
    • Note: Si vous voulez accorder accès illimité à votre exemple, vous pouvez spécifier 0.0.0.0/0, bien que Amazon recommande pas cette pratique
  9. Sur Ajouter une Règle, puis Appliquer Vos Modifications
  10. Vérifiez si vous êtes maintenant en mesure de vous connecter à votre exemple via SSH.

J'espère que cela peut aider quelqu'un comme m'a aidé.

48
répondu Matteo Ceserani 2014-03-12 15:23:56

C'est ainsi que j'ai résolu le problème

ssh -i <key> ec2-user@<ec2 ip>
43
répondu Deepti Kohli 2013-12-23 01:49:03

J'ai résolu le problème en mettant simplement sudo avant

sudo ssh -i mykey.pem myec2.amazonaws.com

Mais la bonne solution est de changer d'abord la propriété, puis de se connecter en tant qu'utilisateur normal, comme L'a dit Janus Troelsen ci-dessous. Dans mon cas, ce serait:

chown wellington:wellington key.pem
26
répondu Wellington Lorindo 2015-10-02 12:53:45

Essayez d'utiliser

sudo ssh -i mykey.pem ubuntu@<ec2_ip_public_dns>

Ou

sudo ssh -i mykey.pem ec2-user@<ec2_ip_public_dns>
23
répondu Abhishek Gupta 2014-06-30 13:43:51

Une Autre cause possible de cette erreur:

Lorsque le répertoire personnel de l'utilisateur est accessible en écriture de groupe , l'utilisateur ne peut pas se connecter.

(reproduit sur L'instance Ubuntu.)

22
répondu Stepan 2015-07-02 12:17:37

Pour l'instance ubuntu 12.04 LTS micro, j'ai dû définir le nom d'utilisateur comme option

ssh -i pemfile.pem -l ubuntu dns
7
répondu dc10 2014-03-10 20:51:30

Vous devez effectuer les étapes suivantes:

  1. Ouvrez votre client ou terminal ssh si vous utilisez Linux.
  2. Localisez votre fichier de clé privée et modifiez votre répertoire.
    cd <path to your .pem file>
  3. Exécuter les commandes ci-dessous:
    chmod 400 <filename>.pem
    ssh -i <filename>.pem ubuntu@<ipaddress.com>

Si ubuntu utilisateur ne fonctionne pas, essayez avec ec2-user.

7
répondu Rabinarayan Panigrahi 2017-03-11 11:03:50

J'ai lutté avec la même erreur d'Autorisation refusée apparemment en raison de

key_parse_private2: missing begin marker 

Dans Ma situation, la cause était le fichier de configuration ssh de l'utilisateur actuel (~ / .ssh / config).

En utilisant ce qui suit:

ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'

La sortie initiale a montré:

debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config

... beaucoup de lignes de débogage coupées ici ...

debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.

La troisième ligne ci-dessus est l'endroit où le problème réel a été identifié; cependant, j'ai cherché au message de débogage quatre lignes du bas (ci-dessus) et j'ai été induit en erreur. Y n'est pas un problème avec la clé mais je l'ai testé et comparé d'autres configurations.

Mon fichier de configuration SSH utilisateur réinitialise l'hôte via un paramètre global involontaire comme indiqué ci-dessous. La première ligne D'hôte n'aurait pas dû être un commentaire.

$ cat config
StrictHostKeyChecking=no
#Host myAlias
        user ec2-user
        Hostname bitbucket.org
#        IdentityFile ~/.ssh/somekey
#        IdentitiesOnly yes

Host my2ndAlias
        user myOtherUser
        Hostname bitbucket.org
        IdentityFile ~/.ssh/my2ndKey
        IdentitiesOnly yes

J'espère que quelqu'un d'autre trouvera cela utile.

5
répondu Ben Paz 2015-06-19 16:33:58

J'ai oublié d'ajouter le nom d'utilisateur (ubuntu) lors de la connexion de mon instance Ubuntu. J'ai donc essayé ceci:

ssh -i /path/my-key-pair.pem my-ec2-instance.amazonaws.com

Et la bonne façon était

ssh -i /path/my-key-pair.pem ubuntu@my-ec2-instance.amazonaws.com
4
répondu JohnP 2016-03-31 08:42:26

Cela m'est arrivé plusieurs fois. J'ai utilisé Amazon Linux AMI 2013.09.2 et Ubuntu Server 12.04.3 LTS qui sont tous deux sur le niveau libre.

Chaque fois que j'ai lancé une instance, j'ai la permission refusée. Je n'ai pas vérifié cela mais ma théorie est que le serveur n'est pas complètement configuré avant que j'essaie de ssh dedans. Après quelques essais avec la permission refusée, j'attends quelques minutes et puis je suis capable de me connecter. Si vous rencontrez ce problème, je suggère d'attendre cinq minutes et essayer à nouveau.

3
répondu Wade Anderson 2014-01-14 15:42:06

Voici un scénario frustrant possible qui produit cette erreur:

Si vous lancez une nouvelle instance à partir d'une AMI que vous avez créée d'une autre instance (par exemple instance xyz), la nouvelle instance n'acceptera que la même clé que l'instance a utilisée. C'est tout à fait compréhensible mais cela devient déroutant car pendant le processus étape par étape de création de la nouvelle instance, il vous est demandé de sélectionner ou de créer une clé (à la toute dernière étape) qui ne fonctionnera pas.

Quel que soit le clé que vous créez ou sélectionnez, seule la clé que vous utilisiez par exemple XYZ sera acceptée par la nouvelle instance.

2
répondu Seeker 2014-03-17 01:51:52

J'ai lutté avec cela pendant un moment aussi jusqu'à ce que je trouve ce qui suit:

eb ssh

Lorsque vous utilisez cela dans le répertoire du projet, bingo-bango no muss no chichi, vous êtes dans

2
répondu JedA 2015-04-22 14:06:06

Dans mon propre cas, j'ai fait ce qui suit:

chmod 400 <key.pem>

ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)

J'utilisais initialement root@ part et j'ai eu cette invite:

Please login as the user "ec2-user" rather than the user "root".
2
répondu AJNinja 2015-08-18 20:59:29

Je suis sous Windows avec WinSCP. Il fonctionne très bien sur L'Explorateur de fichiers et Putty SSH Shell pour accéder à mon AmazonEC2-VPC Linux. Il n'y a rien à faire avec chmod pem file, car il utilise myfile.ppk converti par PuTTYgen à partir de la fichier pem.

2
répondu Chetabahana 2017-05-23 12:34:45

La même chose m'est arrivée, mais tout ce qui se passait, c'est que la clé privée s'est perdue du trousseau sur ma machine locale.

Ssh-add-K

A ajouté la clé, puis la commande ssh pour se connecter est retournée au travail.

2
répondu eiTan LaVi 2017-11-11 21:33:41

Ce problème peut être résolu en vous connectant à Ubuntu box en utilisant la commande ci-dessous:

ssh -i ec2key.pem ubuntu@ec2-public-IP
1
répondu Prajith 2015-05-11 14:08:15

J'ai deux fois eu des clés et une ligne de commande ssh correcte (je sais parce que je duplique une instance Ubuntu 14.04), mais je n'ai tout simplement pas été capable de ssh dans une nouvelle instance, même après avoir attendu 5 minutes comme suggéré par Wade Anderson ci-dessus.

J'ai dû détruire et recréer la machine. Ce qui est arrivé à deux reprises. Comme je ne peux pas entrer au départ, je ne vois pas ce qui ne va pas.

Donc, si vous avez ce problème, essayez cela.

1
répondu Greg Bell 2015-11-01 23:18:40

Vous devez vérifier ces quelques choses:

  1. Assurez-vous que votre adresse IP est correcte
  2. Assurez-vous que vous utilisez la bonne clé
  3. assurez-vous que vous utilisez le bon nom d'utilisateur, vous pouvez essayer: 3.1. admin 3.2. ec2-utilisateur 3.3. ubuntu

J'ai eu le même problème, et il a résolu après avoir changé de nom d'utilisateur pour ubuntu. Dans la documentation AWS a été mentionné à l'utilisateur ec2-user mais en quelque sorte ne fonctionne pas pour moi.

1
répondu Mehran 2016-10-01 14:19:26

Ma clé privée était définie sur permission 400 et résultait en une autorisation refusée en le définissant sur ' 644 ' m'a aidé .

Key_load_private_type: Permission denied est l'erreur que je recevais

Solution: Sudo chmod 644 <key.pem>

Note: mis à 644 est indispensable, il ne fonctionnait pas avec 400

1
répondu Kuldeep Dangi 2016-10-26 09:16:17

Lorsque vous essayez de faire

ssh -i <.pem path> root@ec2-public-dns

Vous recevez un message vous conseillant d'utiliser le ec2-user.

Please login as the user "ec2-user" rather than the user "root".

Utilisez donc

ssh -i <.pem path> ec2-user@ec2-public-dns

1
répondu Jerome Anthony 2017-04-06 02:52:35

J'ai eu le même problème et c'est très étrange. Si vous croyez que vous faites tout le bien que de suivre ceci: Parfois, il y a confusion à propos de l'utilisateur pour L'instance EC2!! Parfois, vous obtenez ec2-user, ubuntu, centos etc. Alors vérifiez votre nom d'utilisateur pour le machie!!

La Connexion avec l'utilisateur root ssh -i yourkey.pem (400 permission) root@<ip> il lancera une erreur et vous donnera le nom d'utilisateur disponible . puis connectez-vous avec cet utilisateur.

1
répondu Manoj Sahu 2017-05-03 11:24:49

C'est une chose de base, mais confirmez toujours quel utilisateur vous essayez de faire la connexion. Im mon cas, était juste une distraction. J'essayais d'utiliser un utilisateurroot :

ssh -i ~/keys/<key_name> root@111.111.111.111

Mais a un autre utilisateur:

ssh -i ~/keys/<key_name> dedeco@111.111.111.111
1
répondu Andre Araujo 2017-06-08 14:35:57

J'ai eu la même erreur mais une situation différente. pour moi, il est arrivé à l'improviste après beaucoup de temps je pourrais ssh avec succès pour mon ordinateur distant là-bas. après beaucoup de recherche de la solution à mon problème étaient les autorisations de fichier. c'est étrange bien sûr parce que je n'ai pas changé les autorisations dans mon ordinateur ou celui distant appartenant aux fichiers / répertoires du ssh. donc, à partir du bon archlinux wiki Voici:

Pour la machine locale, procédez comme suit:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa

Pour le la machine distante fait cela:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

Après cela, mon ssh a commencé à fonctionner à nouveau sans la chose permission denied (publickey).

1
répondu Elimelech 2017-12-26 21:52:29

Un autre problème Possible: mauvais identifiant de connexion

Cochez "Instructions D'Utilisation"

Toutes les bonnes suggestions ci-dessus, mais ce que j'ai rencontré, c'est que j'ai sélectionné une instance pré-faite. Une fois l'instance démarrée, consultez les instructions d'utilisation. J'ai incorrectement utilisé l'id de connexion de la clé privée quand dans les instructions j'étais censé utiliser 'bitnami' (par exemple Bitnami @ domain-I key.pem)

0
répondu Mike Q 2018-01-27 21:41:06

J'ai eu une erreur similaire

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: xxxx.pem
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Mon problème était que l'instance ne démarrait pas correctement en raison d'une erreur sur le script d'exécution au démarrage de Step 3: Configure instance detail sous Advanced details:

Ce que je pensais être entré:

#include
 https://xxxx/bootstrap.sh


Ce qui est entré rompt la configuration de l'instance

#include

https://xxxx/bootstrap.sh

Donc, la clé publique du côté de l'instance n'a pas été créée

0
répondu RNA 2018-04-05 08:48:24

C'est sensible à la casse.

Mauvais: SSH ec2-user @ XXX. XX. XX. XX-I MyEC2KeyPair.pem

Correct: SSH ec2-user @ XXX. XX. XX. XX-I MyEC2KeyPair.pem

0
répondu Tanmay 2018-04-25 00:38:19

J'ai pu SSH d'une machine, mais pas d'une autre. Il s'avère que j'utilisais la mauvaise clé privée.

La façon dont j'ai compris cela était en obtenant la clé publique de ma clé privée, comme ceci:

ssh-keygen -y -f ./myprivatekey.pem

Ce qui est sorti ne correspond pas à ce qui était dans ~/.ssh/authorized_keys sur L'instance EC2.

-1
répondu Petko M 2017-08-09 20:12:03

Toutes les réponses les mieux classées ci-dessus sont précises et devraient fonctionner dans la plupart des cas. Dans le cas où ils ne le font pas comme dans mon cas, je me suis simplement débarrassé de mon fichier ~/.ssh/known_hosts sur la machine à partir de laquelle j'essayais de ssh et cela a résolu le problème pour moi. J'ai été en mesure de se connecter par la suite.

-1
répondu pbegle 2018-04-02 20:21:57