web-dev-qa-db-fra.com

AWS - Déconnecté: Aucune méthode d'authentification prise en charge disponible (serveur envoyé: publickey)

SSH sur mon serveur AWS vient de tomber en panne pour PuTTY et Filezilla. Je fais des efforts pour que ce message soit une liste de dépannage complète. Par conséquent, si vous partagez des liens vers d'autres pages de débordement de pile, je les modifie dans la question.

Disconnected : No supported authentication methods available (server sent :publickey)


L’erreur est familière depuis que j’ai établi la connexion il ya presque un an. Si vous configurez AWS SSH pour la première fois, ceux-ci résolvent les problèmes les plus courants:

Cependant, la seule chose qui pourrait affecter un système qui fonctionnait auparavant est la suivante:

  • Mauvais IP: Le redémarrage d'une instance AWS (ou la création d'une image) n'est pas garanti pour conserver la même adresse IP. Cela devrait évidemment être mis à jour dans PuTTY. 

Quelles sont les autres possibilités? 

La solution à celle-ci (d'après l'article accepté ci-dessous) est que, pour AWS EC2, ces 3 utilisateurs doivent disposer des autorisations appropriées (777 pas ok pour aucun de ceux-ci). Voici un exemple qui fonctionne:

/home/ec2-user/ - 700
/home/ec2-user/.ssh/ - 600
/home/ec2-user/.ssh/authorized_keys - 600

/ var/log/secure vous dira lequel génère une erreur, consultez ce didacticiel vidéo pour obtenir un accès si vous êtes complètement verrouillé: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4

43
AvadData

Pour moi, cette erreur est apparue immédiatement après avoir changé le répertoire de base de l'utilisateur en 

Sudo usermod -d var/www/html username

Cela peut également se produire en raison d'un manque de permission appropriée pour le fichier allowed_key dans ~/.ssh. Assurez-vous que l'autorisation de ce fichier est 0600 et que l'autorisation de ~/.ssh est 700.

7
Iman Sedighi

Une autre cause pourrait affecter un système qui fonctionnait auparavant. J'ai recréé mes instances (à l'aide de AWS OpsWorks) pour utiliser Amazon Linux au lieu d'Ubuntu et j'ai reçu cette erreur après l'avoir fait. Passer à "ec2-user" comme nom d'utilisateur au lieu de "ubuntu" a résolu le problème pour moi.

12
Owen

Vous recevrez également le message "Déconnecté: Aucune méthode d’authentification prise en charge disponible (serveur envoyé: publickey)" si vous avez un utilisateur Linux correct mais que vous n’avez pas créé le fichier .ssh/registered_keys et enregistré la clé publique comme indiqué dans Gestion de l’utilisateur Comptes sur votre instance Linux

12
rodolk

PuTTY ne prend pas en charge de manière native le format de clé privée (.pem) généré par Amazon EC2. PuTTY dispose d'un outil appelé PuTTYgen, qui permet de convertir les clés au format PuTTY requis (.ppk). Vous devez convertir votre clé privée dans ce format (.ppk) avant de tenter de vous connecter à votre instance à l'aide de PuTTY. 

Les étapes à suivre sont décrites ici: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Cela a résolu le problème.

10
René Winkler

La réponse complète est ici: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Votre problème peut être lié à connexion incorrecte qui varie en fonction des AMI . Utilisez les connexions suivantes pour les AMI suivantes:

  • ubuntu ou root sur les AMI d'ubuntu
  • ec2-user sur AMI Amazon Linux
  • centos sur Centos AMI
  • debian ou root sur les AMI de Debian
  • ec2-user ou Fedora sur Fedora
  • ec2-user ou root sur: RHEL AMI, SUSE AMI, autres.

Si vous utilisez un système d'exploitation:

  • Windows - récupère la clé PEM sur le site Web AWS et génère un fichier PPK à l'aide de PuttyGen. Ensuite, utilisez PuTTY pour utiliser le PPK (sélectionnez-le dans la colonne de gauche: Connexion-> SSH-> Auth: clé privée pour autorisation)
  • Linux - exécuter: ssh -i your-ssh-key.pem login@IP-or-DNS

Bonne chance.

8
Witold Kaczurba

J'ai eu le même problème, par erreur, par accident. Je vais le partager ici, au cas où quelqu'un aurait commis la même erreur.

Étapes de base, comme d'autres ont décrit.

  1. Téléchargez PuTTY et puttygen ou le paquet PuTTY et installez-le.
  2. Obtenez le fichier .pem à partir de votre instance AWS EC2.
  3. Utilisez puttygen pour convertir le fichier .pem afin d’obtenir une clé privée - une erreur s’est produite ici. J'ai choisi l'onglet "Conversions" de PuttyGen et j'ai chargé mon fichier .pem. Après avoir chargé le fichier pem, NE CLIQUEZ PAS ici sur "Générer", mais directement sur "Enregistrer la clé privée". C'est la clé dont vous avez besoin. Si vous cliquez sur Générer, vous aurez une paire de clés totalement différente.
  4. Dans PuTTY, utilisez [email protected] et chargez la clé privée sur SSH/Auth.

Bonne chance!

6
Tony Xu

dans la plupart des cas, aucune erreur de méthode d'authentification ne s'est produite lors de l'utilisation du mauvais nom d'utilisateur pour la connexion. Mais je trouve autre chose si vous rencontrez toujours des problèmes de connexion et que vous avez essayé toutes les options ci-dessus.

J'ai créé couple Linux VM et j'essaie de reproduire ce problème de connexion. Une chose que j'ai constatée est que, quand AWS vous a demandé de nommer votre paire de clés, NE PAS UTILISER d'espace vide ("") et de point (".") nom de paire, même AWS vous permet de le faire.

ex. lorsque j'ai nommé la paire de clés "AWS.FREE.LINUX", la connexion est toujours refusée. Lorsque j'ai nommé "AWS_FREE_LINUX", tout fonctionne correctement.

J'espère que cela aidera un peu.

2
Michael Zhang

J'ai eu le même problème, j'ai utilisé DNS public au lieu de IP publique . C'est résolu maintenant.

0
user3966432

Pour moi, il me suffisait de dire à FileZilla où se trouvaient les clés privées:

  1. Sélectionnez Edition> Paramètres dans le menu principal.
  2. Dans la boîte de dialogue Paramètres, sélectionnez Connexion> SFTP.
  3. Cliquez sur le bouton "Ajouter un fichier clé ..."
  4. Accédez au fichier (s) PEM souhaité (s), puis sélectionnez-le.
0
Rob Stoecklein

J'utilise OpsWorks et je voulais enregistrer une nouvelle instance Linux existante à partir de ma machine Windows sur AWS Cli. 

Le premier problème était que je devais utiliser mon fichier .pkk généré par PuTTY .

Le deuxième problème était que je devais citer le chemin absolu vers ce fichier .pkk comme celui-ci:

aws opsworks inscrire --infrastructure-class ec2 --ssh-nom d'utilisateur ec2-user --ssh-private-key "C:\key.ppk"

0
Sebastian Viereck

Sur la base de plusieurs instances, si le fichier de clé et le nom d'utilisateur sont corrects, cela semble se produire lors de la modification de certaines autorisations de répertoire associées à l'utilisateur root.

0
Karan Modi

Un problème similaire s'est produit avec moi aujourd'hui. J'avais aussi beaucoup cherché à ce sujet. Aucune aide. Je viens de faire deux changements et ça fonctionne bien aussi.

  1. J'avais visité la documentation Amazon , où description. Vérifiez qu'il existe une règle autorisant le trafic de votre ordinateur sur le port 22 (SSH). Sinon, créez-la, éditez "Groupe de sécurité" et ajoutez "SSH" IP. CA aidera.
  2. Dans mon cas, dans le profil PuTTY, je dois à nouveau autoriser avec le fichier .ppk. Je ne sais pas pourquoi il demande encore, sans aucun changement.

J'espère que cela vous aidera.

0
Asharam Seervi

Dans mon cas, le problème était que le fichier ppk était placé dans le dossier% USERPROFILE%\Downloads au lieu du dossier% USERPROFILE% .ssh. 

Après avoir déplacé le fichier, le problème a disparu.

0
avp