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:
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
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.
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.
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
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.
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:
Si vous utilisez un système d'exploitation:
ssh -i your-ssh-key.pem login@IP-or-DNS
Bonne chance.
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.
Bonne chance!
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.
J'ai eu le même problème, j'ai utilisé DNS public au lieu de IP publique . C'est résolu maintenant.
Pour moi, il me suffisait de dire à FileZilla où se trouvaient les clés privées:
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"
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.
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.
J'espère que cela vous aidera.
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.