it-swarm.com.de

AWS - Disconnected: Keine unterstützten Authentifizierungsmethoden verfügbar (Server gesendet: publickey)

SSH zu meinem AWS-Server brach gerade für PuTTY und Filezilla. Ich mache mir Mühe, damit dieser Beitrag eine umfassende Fehlerbehebungsliste ist. Wenn Sie also Links zu anderen Stack-Überlaufseiten freigeben, werde ich sie in die Frage einarbeiten.

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


Der Fehler ist bekannt, als ich vor fast einem Jahr die Verbindung aufbaute. Wenn Sie AWS SSH zum ersten Mal einrichten, richten Sie sich an die häufigsten Probleme:

Das einzige, was ich denken könnte, das sich auf ein zuvor funktionierendes System auswirken könnte, ist:

  • Falsche IP: Beim Neustarten einer AWS-Instanz (oder Erstellen eines Images) wird nicht garantiert, dass dieselbe IP-Adresse beibehalten wird. Dies müsste natürlich in PuTTY aktualisiert werden. 

Welche anderen Möglichkeiten gibt es? 

Lösung für diese (gemäß dem unten angegebenen akzeptierten Beitrag) ist, dass für AWS EC2 alle drei Berechtigungen über die erforderlichen Berechtigungen verfügen müssen (777 nicht in Ordnung). Hier ist ein Beispiel, das funktioniert:

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

/ var/log/secure informiert Sie darüber, welche einen Fehler auslöst. In diesem Video-Tutorial erhalten Sie Zugriff, wenn Sie vollständig gesperrt sind: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4

43
AvadData

Für mich ist dieser Fehler sofort aufgetreten, nachdem ich das Home-Verzeichnis des Benutzers geändert habe 

Sudo usermod -d var/www/html username

Es kann auch vorkommen, dass in ~/.ssh keine Berechtigung für die Datei authorized_key vorliegt. Stellen Sie sicher, dass die Erlaubnis für diese Datei 0600 und die Erlaubnis für ~/.ssh 700 ist.

7
Iman Sedighi

Es gibt eine andere Ursache, die sich auf ein zuvor funktionierendes System auswirken würde. Ich habe meine Instanzen neu erstellt (mit AWS OpsWorks), um Amazon Linux anstelle von Ubuntu zu verwenden, und erhielt diesen Fehler danach. Die Umstellung auf "ec2-user" als Benutzername anstelle von "ubuntu" löste das Problem für mich.

12
Owen

Sie erhalten auch "Disconnected: Keine unterstützten Authentifizierungsmethoden verfügbar (Server gesendet: publickey)", wenn Sie einen korrekten Linux-Benutzer haben, die Datei jedoch nicht .ssh/Authorized_keys erstellt und den öffentlichen Schlüssel gespeichert haben, wie in Benutzer verwalten angegeben Konten auf Ihrer Linux-Instanz

12
rodolk

PuTTY unterstützt das von Amazon EC2 generierte private Schlüsselformat (.pem) nicht nativ. PuTTY verfügt über ein Tool namens PuTTYgen, mit dem Schlüssel in das erforderliche PuTTY-Format (.ppk) konvertiert werden können. Sie müssen Ihren privaten Schlüssel in dieses Format (.ppk) konvertieren, bevor Sie versuchen, mithilfe von PuTTY eine Verbindung zu Ihrer Instanz herzustellen. 

Die Schritte, wie dies ausgeführt wird, sind hier beschrieben: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Dies hat das Problem gelöst.

10
René Winkler

Eine umfassende Antwort ist hier: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Ihr Problem kann mit falscher Anmeldung zusammenhängen, die je nach AMIs unterschiedlich ist. Verwenden Sie die folgenden Anmeldungen für folgende AMIs:

  • ubuntu oder root auf ubuntu AMIs
  • ec2-user unter Amazon Linux AMI
  • centos zu Centos AMI
  • debian oder root auf Debian-AMIs
  • ec2-user oder Fedora auf Fedora
  • ec2-user oder root bei: RHEL AMI, SUSE AMI und anderen.

Wenn Sie ein Betriebssystem verwenden:

  • Windows - Rufen Sie den PEM-Schlüssel von der AWS-Website ab und generieren Sie mit PuttyGen eine PPK-Datei. Verwenden Sie dann PuTTY, um das PPK zu verwenden (wählen Sie es in der linken Spalte aus: Verbindung-> SSH-> Auth: Privater Schlüssel zur Autorisierung.)
  • Linux - ausführen: ssh -i your-ssh-key.pem [email protected]

Viel Glück.

8
Witold Kaczurba

Ich hatte das gleiche Problem, aus Versehen. Ich teile es hier, falls jemand den gleichen Fehler gemacht hat.

Grundlegende Schritte, wie andere beschrieben.

  1. Laden Sie PuTTY und puttygen oder das PuTTY-Paket herunter und installieren Sie es.
  2. Rufen Sie die PEM-Datei von Ihrer AWS EC2-Instanz ab.
  3. Verwenden Sie puttygen, um die .pem-Datei zu konvertieren, sodass Sie einen privaten Schlüssel haben - hier ist ein Fehler aufgetreten. Ich habe die Registerkarte "Konvertierungen" in PuttyGen gewählt und lade meine .pem-Datei. Klicken Sie nach dem Laden der PEM-Datei NICHT auf "Generate", sondern direkt auf "Save private key". Das ist der Schlüssel, den du brauchst. Wenn Sie auf Generate klicken, haben Sie ein völlig anderes Schlüsselpaar.
  4. Verwenden Sie in PuTTY die Datei [email protected] und laden Sie den privaten Schlüssel unter SSH/Auth

Viel Glück!

6
Tony Xu

in den meisten Fällen wurde keine Authentifizierungsmethode angezeigt, wenn der falsche Benutzername zum Anmelden verwendet wurde. Ich finde jedoch etwas anderes, wenn Sie immer noch Probleme mit der Verbindung haben und alle oben genannten Optionen ausprobiert haben.

Ich habe ein paar Linux VM erstellt und versuche, ein solches Verbindungsproblem zu reproduzieren. Eine Sache, die ich gefunden habe, ist, als Sie von AWS gefragt wurden, ob Sie Ihr Schlüsselpaar nennen sollen Paarname, sogar AWS erlaubt es Ihnen tatsächlich.

ex. Wenn ich das Schlüsselpaar als "AWS.FREE.LINUX" benannte, wird die Verbindung immer abgelehnt. Wenn ich "AWS_FREE_LINUX" nannte, funktioniert alles einwandfrei.

Hoffe das hilft ein bisschen.

2
Michael Zhang

Ich hatte das gleiche Problem, ich benutzte Public DNS anstelle von Public IP . Es wurde jetzt gelöst.

0
user3966432

Für mich musste ich FileZilla nur mitteilen, wo die privaten Schlüssel waren:

  1. Wählen Sie im Hauptmenü Bearbeiten> Einstellungen
  2. Wechseln Sie im Dialogfeld Einstellungen zu Verbindung> SFTP
  3. Klicken Sie auf die Schaltfläche "Schlüsseldatei hinzufügen ..."
  4. Navigieren Sie zu den gewünschten PEM-Dateien und wählen Sie sie aus.
0
Rob Stoecklein

Ich verwende OpsWorks und wollte eine neue vorhandene Linux-Instanz von meinem Windows-Computer bei AWS Cli registrieren. 

Das erste Problem bestand darin, dass ich meine PuTTY generierte .pkk-Datei verwenden musste .

Das zweite Problem war, dass ich quot den absoluten Pfad zu dieser .pkk-Datei wie folgt angeben musste:

aws opsworks register --infrastructure-class ec2 --ssh-Benutzername ec2-user --ssh-private-key "C:\key.ppk"

0

Wenn die Schlüsseldatei und der Benutzername korrekt sind, scheint dies auf mehreren Instanzen aufzutreten, wenn bestimmte dem Rootbenutzer zugeordnete Verzeichnisberechtigungen geändert werden.

0
Karan Modi

Ein ähnliches Problem ist heute bei mir aufgetreten. Ich hatte auch viel darüber gesucht. Keine Hilfe. Ich habe gerade zwei Änderungen vorgenommen und es funktioniert auch einwandfrei.

  1. Ich hatte Amazon-Dokumentation besucht, in dem beschrieben wird, ob entweder eine Regel vorhanden ist, die den Datenverkehr von Ihrem Computer zu Port 22 (SSH) zulässt. Wenn nicht vorhanden, erstellen Sie sie und bearbeiten Sie "Sicherheitsgruppe" und fügen Sie "SSH" hinzu IP. Das wird helfen.
  2. In meinem Fall, In PuTTY-Profil, muss ich die PPK-Datei erneut autorisieren. Ich weiß nicht, warum es noch einmal gefragt wird, ohne dass Änderungen vorgenommen werden.

Ich hoffe es wird dir helfen.

0
Asharam Seervi

In meinem Fall bestand das Problem darin, dass die PPK-Datei im Ordner% USERPROFILE%\Downloads statt im Ordner% USERPROFILE% .ssh abgelegt wurde. 

Nachdem ich die Datei verschoben habe, ist das Problem verschwunden.

0
avp