C'est probablement une question stupidement simple pour certains :)
J'ai créé une nouvelle instance Linux sur Amazon EC2, et dans le cadre de cela, j'ai téléchargé le fichier .pem pour me permettre de SSH dans.
Quand j'ai essayé de ssh avec:
ssh -i myfile.pem <public dns>
J'ai eu:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).
Suite à ce post, j'ai essayé de chmod +600 le fichier pem, mais maintenant, quand je ssh, je reçois juste:
Permission denied (publickey).
Quelle erreur d'écolier est-ce que je fais ici? Le fichier .pem se trouve dans mon dossier personnel (sous osx). Ses autorisations ressemblent à ceci:
-rw-------@ 1 mattroberts staff 1696 19 Nov 11:20 amazonec2.pem
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Matt Roberts
la source
la source
chmod 400 myfile.pem
car il utilisemyfile.ppk
généré par PuTTYgen à partir du fichier .pem.Réponses:
Le problème est d'avoir un mauvais module sur le fichier.
Résolu facilement en exécutant -
chmod 400 mykey.pem
Tiré des instructions d'Amazon -
400 le protège en le rendant en lecture seule et uniquement pour le propriétaire.
la source
ssh -i YOUR_PEM_FILE.pem ec2-user@YOUR_IP
résolu le problème. Peut-être que cela devrait être la réponse acceptée ...Vous utilisez probablement un mauvais nom d'utilisateur pour vous connecter:
ubuntu
ec2-user
root
ouadmin
Pour vous connecter, vous devez ajuster votre commande ssh:
HTH
la source
Permission denied (publickey).
et rien d'autre ...chmod 500 <path_to_pem_file>
devrait le faire.Je sais que c'est très tard dans le jeu ... mais cela fonctionne toujours pour moi:
étape 1
étape 2, simplement ssh dedans :)
par exemple
j'espère que cela aide quelqu'un.
la source
ssh-agent -s
rapporte SSH_AGENT_PID = 3409; ssh-add donne la même erreur que ci-dessus ......... Toute aide ici plzOk mec, la seule chose qui a fonctionné pour moi était:
Modifier les autorisations de la clé
Assurez-vous de vous connecter en utilisant ec2-user et la bonne adresse ec2-99 .... L'adresse ec2-99 se trouve en bas de la console aws lorsque vous êtes connecté et que votre instance est répertoriée
la source
Jetez un œil à cet article . Vous n'utilisez pas le DNS public mais plutôt le formulaire
où le nom est visible sur votre panneau AMI
la source
Modifiez l'autorisation pour le fichier de clé avec:
Consultez la documentation AWS pour vous connecter à l'instance:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#EC2_ConnectToInstance_Linux
la source
Dans Windows, vous pouvez accéder aux propriétés du fichier pem, aller à l'onglet sécurité, puis au bouton avancer.
supprimer l'héritage et toutes les autorisations. puis accordez-vous le contrôle total. après tout, SSL ne vous donnera plus la même erreur.
la source
Je sais que cette question a déjà reçu une réponse, mais pour ceux qui les ont toutes essayées et vous obtenez toujours l'ennuyeux "Autorisation refusée (publickey)". Essayez d'exécuter votre commande avec SUDO. Bien sûr, il s'agit d'une solution temporaire et vous devez définir correctement les autorisations, mais au moins cela vous permettra d'identifier que votre utilisateur actuel ne s'exécute pas avec les privilèges dont vous avez besoin (comme vous l'avez supposé)
sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
Une fois que vous faites cela, vous obtiendrez un message comme celui-ci:
Please login as the user "ec2-user" rather than the user "root"
Ce qui est également peu documenté. Dans ce cas, procédez comme suit:
sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user
Et vous obtiendrez le glorieux:
la source
Dans le terminal Mac, faire "chmod 400 xyz.pem" ne m'a pas aidé, il a continué à dire que l'autorisation était refusée. Pour les utilisateurs d'ubuntu, je suggère
ssh-add xyz.pem
ssh -i xyz.pem [email protected]
(remarquez que l'utilisateur est ubuntu)la source
Clés SSH et meilleures pratiques d'autorisation de fichiers:
clé publique / fichier .pub - 0600 (lecture et écriture uniquement par le propriétaire)
chmod XXXX file/directory
la source
ssh -i /.pem user @ host-machine-IP
Je pense que c'est parce que vous avez entré des informations d'identification erronées ou que vous utilisez une clé publique plutôt que une clé privée ou que vos autorisations de port sont ouvertes à TOUS pour ssh. C'est mauvais pour Amazon.
la source
Connexion alternative à l'aide de PuTTY. C'est bon mais a besoin de quelques étapes.
J'utilise PuTTY 0.66 sous Windows.
la source
En plus des autres réponses, voici ce que j'ai fait pour que cela fonctionne:
cp key.pem ~/.ssh/key.pem
chmod 400 ~/.ssh/key.pem
eval `ssh-agent -s` ssh-add
ssh-add ~/.ssh/key.pem
Vous devriez maintenant être capable de ssh EC2 (:
la source
Faites un chmod 400 yourkeyfile.pem Si votre instance est Amazon linux, utilisez ssh -i yourkeyfile.pem ec2-user @ ip pour ubuntu ssh -i yourkeyfile.pem ubuntu @ ip pour centos ssh -i yourkeyfile.pem centos @ ip
la source
Il peut y avoir trois raisons derrière cette erreur.
la source
Le problème pour moi était que mon fichier .pem se trouvait dans l'une de mes partitions NTFS. Je l'ai déplacé vers ma partition Linux (ext4).
A donné les autorisations requises en exécutant:
chmod 400 my_file.pem
Et ça a marché.
la source
Eh bien, en regardant votre description de poste, je pense que vous avez commis 2 erreurs: -
Définissez les autorisations correctes pour la clé privée . La commande ci-dessous devrait vous aider à définir la permision de fichier correcte.
chmod 0600 mykey.pem
Mauvais utilisateur ec2 auquel vous essayez de vous connecter .
En regardant votre journal de débogage, je pense que vous avez généré une instance Amazon Linux. L'utilisateur par défaut pour ce type d'instance est
ec2-user
. Si l'instance aurait été ubuntu, votre utilisateur par défaut l'aurait étéubuntu
.ssh -i privatekey.pem default_ssh_user@server_ip
source: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
la source
Liste de contrôle:
Utilisez-vous le bon fichier .pem de clé privée?
Ses autorisations sont-elles définies correctement? (Mes AMI de marque Amazon fonctionnent avec 644, mais Red Hat doit être d'au moins 600 ou 400. Je ne sais pas pour Ubuntu.)
Utilisez-vous le bon nom d'utilisateur dans votre ligne ssh? Amazon-branded = "ec2-user", Red Hat = "root", Ubuntu = "ubuntu". L'utilisateur peut être spécifié comme "ssh -i nom d'utilisateur pem @ nom d'hôte" OU "ssh -l nom d'utilisateur -i nom d'hôte pem"
la source
Modifiez simplement l'autorisation du fichier pem à 0600 en n'autorisant que l'utilisateur autorisé et cela fonctionnera comme un charme.
Et puis essayez de ssh cela fonctionnera parfaitement.
la source
Les autorisations BY par défaut n'autorisent pas la clé pem. Il vous suffit de modifier l'autorisation:
chmod 400 xyz.pem
et si l'instance ubuntu se connecte alors en utilisant:
ssh -i xyz.pem [email protected]
la source
Le fichier de clé ne doit pas être visible par le public, donc utilisez l'autorisation 400
Si la commande ci-dessus montre une erreur d'autorisation, utilisez
Maintenant ssh dans la machine ec2, si vous rencontrez toujours le problème, utilisez ec2-user
ssh -i keyfile.pem [email protected]
la source
.400 le protège en le rendant en lecture seule et uniquement pour le propriétaire.
Vous pouvez trouver la réponse dans le guide ASW.
la source
Voici les étapes simples pour que l'utilisateur Linux se connecte au serveur à l'aide du fichier .pem:
Étape 1: Pour l'emplacement du fichier pem et copiez-le à l'emplacement .ssh de la maison.
Étape 2: modifier l'autorisation
Étape3: exécutez la commande suivante
Comme cette commande est trop longue, vous devez créer son alias à l'aide des commandes suivantes:
Écrivez enfin la même commande de la manière suivante.
Redémarrez maintenant votre système et utilisez-le
sshConnect
pour vous connecter à votre serveur.la source
C'est juste un problème de permission avec votre clé aws pem.
Modifiez simplement l'autorisation de la clé pem à 400 en utilisant la commande ci-dessous.
Si vous n'avez pas l'autorisation de modifier l'autorisation d'un fichier, vous pouvez utiliser la commande sudo comme ci-dessous.
J'espère que cela devrait bien fonctionner.
la source
J'ai vu deux raisons derrière ce problème
1) la clé d'accès n'a pas la bonne autorisation. les clés pem avec l'autorisation par défaut ne sont pas autorisées à établir une connexion sécurisée. Il vous suffit de modifier l'autorisation:
chmod 400 xyz.pem
2) Vérifiez également si vous vous êtes connecté avec les informations d'identification utilisateur appropriées. Sinon, utilisez sudo lors de la connexion
sudo ssh -i {fichier de clés} ec2-user @ {adresse IP de l'hôte distant}
la source
Votre clé ne doit pas être visible publiquement pour que SSH fonctionne. Utilisez cette commande si nécessaire:
Exemple:
la source
Veuillez ignorer cette réponse si elle n'est pas pertinente pour vous, mais d'après mon expérience, j'ai vu des gens avoir un problème
Permission denied (publickey)
parce qu'ils ont simplement collé leur clé publique (sur une machine cible) sans la première lettre !Cela se produit lorsque vous utilisez vim pour modifier (coller) la clé. Puisque vim s'ouvre par défaut en mode commande (pas en mode insertion ), coller la clé sans passer en mode insertion (ie
i
) entraînera le saut de la premières
lettre, par exemple au lieu devous finissez par coller
Alors avant d'essayer d'autres solutions, voyez si vous avez collé votre clé correctement ! c'est à dire
Seulement si vous êtes certain, effectuez les étapes suivantes; essayer de ssh en mode verbeux (c.-à-d. drapeau
-v
) pourrait vous indiquer le problème réel:En remarque, comme cela a déjà été mentionné ici par d'autres, dans la plupart des cas, le démarrage d'un agent ssh vide (programme qui garde vos clés en mémoire) et l'ajout de votre clé devrait résoudre le problème:
la source
Ce qui a résolu cela pour moi était de déplacer le fichier .pem dans le répertoire des applications. Soo say fooapp est le nom de mon application. Je l'ai placé directement dedans.
la source
Parfois, il peut y avoir une erreur dans le dossier. Je ne sais pas pourquoi...
Vous pouvez modifier le dossier et réessayer. Par exemple, vous pouvez expérimenter dans les dossiers habituels (Bureau, Téléchargements et etc.).
J'ai essayé cette méthode et j'ai travaillé
la source
Cette erreur est uniquement due à l'autorisation.
Donnez simplement la permission 400
#chmod 400 pemfilepath
la source