Je souhaite 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é le fichier .pem .
Donné:
chmod 600 pem file.
Ensuite, cette commande
ssh -i /home/kashif/serverkey.pem [email protected]
Mais avoir cette erreur:
Permission denied (publickey)
Aussi, comment puis-je me connecter avec filezilla pour télécharger/télécharger des fichiers?
Ce message d'erreur signifie que vous n'avez pas réussi à vous authentifier.
Ce sont des raisons courantes qui peuvent causer que:
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 certaines Debian, selon la réponse de Bogdan Kulbida) (peut également être root
, Fedora
, voir ci-dessous) Notez que 1.
se produira également si vous avez modifié le fichier /home/<username>/.ssh/authorized_keys
sur votre instance EC2.
À propos de 2.
, les informations sur le nom d'utilisateur à utiliser sont souvent absentes de la description de l'image AMI. Mais vous pouvez en trouver dans la documentation AWS EC2, point 4.
: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
Utilisez la commande ssh pour vous connecter à l'instance. Vous allez spécifier le fichier de clé privée (.pem) et le nom d'utilisateur @ nom_dns_public. Pour Amazon Linux, le nom d'utilisateur est ec2-user. 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 Fedora ou ec2-user. Pour SUSE Linux, le nom d'utilisateur est root. Sinon, si ec2-user et root ne fonctionnent pas, vérifiez auprès de votre fournisseur AMI.
Enfin, sachez qu’il existe de nombreuses autres raisons pour lesquelles l’authentification échouerait. SSH est généralement assez explicite sur ce qui ne va pas si vous souhaitez ajouter l’option -v
à votre commande SSH et lire le résultat, comme expliqué dans de nombreuses autres réponses à cette question.
Dans ce cas, le problème provient de la perte de la paire de clés. À propos de ça:
Vous pouvez suivre ces étapes:
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.
J'espère que cela peut aider quelqu'un comme m'a aidé.
Voici comment j'ai résolu le problème
ssh -i <key> ec2-user@<ec2 ip>
J'ai résolu le problème en mettant simplement Sudo
avant
Sudo ssh -i mykey.pem myec2.amazonaws.com
Mais la solution appropriée consiste à modifier d'abord le propriétaire, puis à vous connecter en tant qu'utilisateur normal, comme l'a dit Janus Troelsen ci-dessous. Dans mon cas ce serait:
chown wellington:wellington key.pem
Essayez d'utiliser
Sudo ssh -i mykey.pem ubuntu@<ec2_ip_public_dns>
OR
Sudo ssh -i mykey.pem ec2-user@<ec2_ip_public_dns>
Une autre cause possible de cette erreur:
Lorsque le répertoire home de l'utilisateur est accessible en écriture au groupe , l'utilisateur ne peut pas se connecter.
(Reproduit sur l'instance Ubuntu.)
Vous devez suivre les étapes suivantes:
cd <path to your .pem file>
chmod 400 <filename>.pem
ssh -i <filename>.pem ubuntu@<ipaddress.com>
Si l'utilisateur ubuntu
ne fonctionne pas, essayez avec ec2-user
.
pour l'instance micro ubuntu 12.04 lts je devais définir le nom d'utilisateur comme option
ssh -i pemfile.pem -l ubuntu dns
Je me suis battu avec la même permission, erreur refusée apparemment en raison de
key_parse_private2: missing begin marker
Dans mon cas, 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 montrait:
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
... de nombreuses 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é dans le message de débogage quatre lignes en bas (ci-dessus) et j'ai été induit en erreur. Il n'y a pas de problème avec la clé mais je l'ai testée et comparée à d'autres configurations.
Le fichier de configuration ssh de mon utilisateur réinitialise l'hôte via un paramètre global non souhaité, 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 trouve cela utile.
J'ai oublié d'ajouter le nom d'utilisateur (ubuntu) lors de la connexion de mon instance Ubuntu. Alors j'ai 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 [email protected]
Cela m'est arrivé plusieurs fois. J'ai utilisé Amazon Linux AMI 2013.09.2 et Ubuntu Server 12.04.3 LTS, tous deux situés sur le niveau libre.
Chaque fois que j'ai lancé une instance, l'autorisation est 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'essaye d'y installer SSH. Après quelques tentatives avec une autorisation refusée, j'attends quelques minutes, puis je peux me connecter. Si vous rencontrez ce problème, je suggère d'attendre cinq minutes et d'essayer à nouveau.
la même chose m’est arrivée, mais tout ce qui se passait, c’est que la clé privée a été perdue du trousseau de ma machine locale.
ssh-add -K
ré-ajouté la clé, puis la commande ssh pour se connecter est retournée au travail.
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 la partie root@
et j'ai reçu l'invite suivante:
Please login as the user "ec2-user" rather than the user "root".
Voici un scénario frustrant pouvant générer cette erreur:
Si vous distribuez une nouvelle instance à partir d'une AMI créée d'une autre instance (par exemple, instance xyz), cette nouvelle instance n'acceptera que la clé utilisée par cette instance. Cela est tout à fait compréhensible, mais cela prête à confusion car lors du processus pas à pas de création de la nouvelle instance, il vous est demandé de sélectionner ou de créer une clé (à la dernière étape) qui ne fonctionnera pas.
Quelle que soit la clé créée ou sélectionnée, seule la clé que vous utilisiez par exemple XYZ sera acceptée par la nouvelle instance.
J'ai eu du mal avec cela pendant un moment aussi jusqu'à ce que j'ai trouvé ce qui suit:
eb ssh
Quand vous utilisez ça depuis le répertoire du projet, bingo-bango pas de problème, vous êtes dedans
Quand tu essaies de faire
ssh -i <.pem path> root@ec2-public-dns
Vous recevez un message vous invitant à utiliser le ec2-user
.
Please login as the user "ec2-user" rather than the user "root".
Donc utiliser
ssh -i <.pem path> ec2-user@ec2-public-dns
J'ai eu le même problème et c'est très étrange. Si vous pensez faire tout ce que vous faites, alors suivez ceci: Parfois, il y a confusion à propos de l'utilisateur pour l'instance EC2 !! Certaines fois, vous obtenez ec2-user, Ubuntu, Centos, etc. Vérifiez donc votre nom d'utilisateur pour la machie !!
Connexion avec l'utilisateur root
ssh -i yourkey.pem (400 permission) root@<ip>
Cela provoquera une erreur et vous donnera le nom d'utilisateur disponible . puis connectez-vous avec cet utilisateur.
Ce problème peut être résolu en se connectant à Ubuntu à l'aide de la commande ci-dessous:
ssh -i ec2key.pem ubuntu@ec2-public-IP
C'est une chose élémentaire, mais vérifiez toujours quel utilisateur vous essayez de vous connecter. Je suis mon cas était juste une distraction. J'essayais d'utiliser un utilisateur root:
ssh -i ~/keys/<key_name> [email protected]
Mais était un autre utilisateur:
ssh -i ~/keys/<key_name> [email protected]
j'ai eu la même erreur mais situation différente. pour moi, c'est arrivé à l'improviste après beaucoup de temps, je pouvais utiliser SSH avec succès sur mon ordinateur distant. Après beaucoup de recherches sur la solution à mon problème, il y avait les permissions de fichiers. c'est étrange bien sûr parce que je n'ai changé aucune permission sur mon ordinateur ou sur celui distant appartenant aux fichiers/répertoires de ssh. donc du bon archlinux wiki le voici:
Pour la machine locale, procédez comme suit:
$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa
Pour la machine distante faire cela:
$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
après cela, ma ssh a recommencé à fonctionner sans la permission refusée (publickey).
vous devez vérifier ces quelques choses:
J'ai eu le même problème, et il a été résolu après que j'ai changé de nom d'utilisateur pour Ubuntu. Dans AWS, la documentation a été mentionnée à l'utilisateur ec2-user mais ne fonctionne pas pour moi d'une manière ou d'une autre.
J'ai eu deux fois les clés et la ligne de commande ssh correctes (je sais parce que je suis en train de dupliquer une instance de travail d'Ubuntu 14.04), mais je n'ai simplement pas été en mesure 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. Cela s'est produit à deux reprises. Puisque je ne peux pas entrer au début, je ne peux pas voir ce qui ne va pas.
Donc, si vous avez ce problème, essayez-le.
Ma clé privée a été définie sur permission 400
et a pour résultat que l'autorisation refusée lui a été affectée.
key_load_private_type: Autorisation refusée est l'erreur spécifique que j'ai eu
Solution: Sudo chmod 644 <key.pem>
Remarque: réglé sur 644 est indispensable, il ne fonctionnait pas avec 400
C'est sensible à la casse.
Wrong: SSH EC2-user @XXX.XX.XX.XX -i MyEC2KeyPair.pem
Correct: SSH ec2-user @XXX.XX.XX.XX -i MyEC2KeyPair.pem
Autre problème possible: mauvais identifiant de connexion
Vérifiez les "Instructions d'utilisation"
Toutes les bonnes suggestions ci-dessus, mais ce que j’ai rencontré est que j’ai choisi un exemple déjà créé. Une fois l’instance démarrée, consultez les instructions d’utilisation. J'ai incorrectement utilisé l'identifiant de connexion de la clé privée lorsque j'étais censé utiliser 'bitnami' dans les instructions (par exemple, bitnami @ domain -i key.pem)
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 n'a pas démarré correctement en raison d'une erreur sur le script d'exécution au démarrage à partir de Step 3: Configure instance detail
sous Advanced details:
Ce que je pensais être entré:
#include
https://xxxx/bootstrap.sh
Ce qui est réellement entré rompt la configuration de l'instance
#include
https://xxxx/bootstrap.sh
Donc, la clé publique côté instance n'a pas été créée