2014-07-05 6 views
35

SSH zu meinem AWS-Server ist gerade für Putty und Filezilla gebrochen. Ich bemühe mich, dass dieser Beitrag eine umfassende Fehlerbehebungsliste enthält. Wenn Sie also Links zu anderen Stapelüberlaufseiten freigeben, werde ich sie in die Frage eingeben.AWS - Getrennt: Keine unterstützten Authentifizierungsmethoden verfügbar (Server gesendet: publickey)

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


Der Fehler ist vertraut aus, wenn ich vor die Verbindung fast einem Jahr eingerichtet. Wenn Sie zum ersten Mal AWS SSH sind einrichten, richten diese die häufigsten Probleme:

jedoch , die einzige Sache, die ich denken könnte, die ein vorhergehend arbeitendes System auswirken würde, ist:

  • Falsche IP: Beim Neustarten einer AWS-Instanz (oder beim Erstellen eines Abbilds) 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 dieses eine (pro akzeptierten Beitrag unten) besteht darin, dass für AWS EC2 alle drei von ihnen die richtigen Berechtigungen haben müssen (777 nicht ok für eine dieser). 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 wird Ihnen sagen, welche einen Fehler wirft, finden Sie in dieser Video-Anleitung für den Zugriff zu erhalten, wenn Sie vollständig gesperrt: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4

Antwort

4

Für mich ist dieser Fehler aufgetreten immediatey, nachdem ich die Home-Verzeichnis von

sudo usermod -d var/www/html username 

geändert Es kann auch wegen des Mangels an richtigen Erlaubnis passiert Datei in ~/.ssh authorized_key. Stellen Sie sicher, dass die Erlaubnis dieser Datei 0600 ist und die Erlaubnis von ~/.ssh ist 700.

12

Sie erhalten auch "Disconnected: Keine unterstützten Authentifizierungsmethoden verfügbar (Server sended: publickey)" wenn Sie einen korrekten Linux-Benutzer haben, aber die Datei .ssh/authorized_keys nicht erstellt und den öffentlichen Schlüssel wie in Managing User Accounts on Your Linux Instance

angegeben gespeichert haben
-1

Beim Versuch zu conn ect auf einen SiteGround-Server über Putty hatte ich das gleiche Problem. Their instructions sind ziemlich gründlich, und müssen für einige Leute arbeiten, aber nicht für mich arbeiten.

Sie empfehlen pageant.exe auszuführen, die im Hintergrund ausgeführt wird. Sie registrieren Ihre Schlüssel mit Pageant, und es soll Putty über die Schlüssel informieren, wenn es versucht, eine Verbindung herzustellen.

In a couple von places Ich habe Vorschläge gefunden, den Schlüssel direkt in der Putty Sitzungsdefinition anzugeben: Putty Konfiguration> Verbindung> SSH> Auth> "Private Schlüsseldatei zur Authentifizierung", dann zu Ihrer Schlüsseldatei im .ppk Format.

Doing this ohne laufende Pageant löste das Problem für mich.

6

PuTTY unterstützt das private Schlüsselformat (.pem), das von Amazon EC2 generiert wird, nicht nativ. PuTTY hat ein Tool namens PuTTYgen, das Schlüssel in das erforderliche PuTTY-Format (.ppk) konvertieren kann. Sie müssen Ihren privaten Schlüssel in dieses Format konvertieren (.ppk), bevor Sie versuchen, mit PuTTY eine Verbindung zu Ihrer Instanz herzustellen.

Die Schritte, wie dies durchzuführen, werden hier beschrieben: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

Dies das Problem gelöst.

0

Wenn die Schlüsseldatei und der Benutzername basierend auf mehreren Instanzen korrekt sind, scheint dies zu geschehen, wenn bestimmte Verzeichnisberechtigungen geändert werden, die dem Benutzer root zugeordnet sind.

10

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

+0

Ich fand, dass wenn Sie "root" verwenden, es Ihnen sagen wird, welchen Benutzer Sie erwarten, zu versuchen, zu verwenden. :) Nicht sicher, warum, aber so habe ich herausgefunden, welcher Benutzer als verbinden. (Und nein, es hat keine Verbindung als Wurzel obwohl.) – James

0

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

  1. Ich hatte Amazon documentation besucht, wo beschreiben entweder Überprüfen Sie, ob es eine Regel gibt, die den Verkehr von Ihrem Computer auf Port 22 (SSH) und falls nicht vorhanden, erstellen Sie ihn und bearbeiten „Security Group“ und fügen Sie „SSH“ ermöglicht Meine IP. Das wird helfen.
  2. In meinem Fall, In Putty-Profil, muss ich wieder mit .ppk-Datei autorisieren. Ich weiß nicht wieso es nochmal fragt, ohne irgendwelche Änderungen vorgenommen zu haben.

Ich hoffe, es wird Ihnen helfen.

2

in den meisten Fällen, keine Authentifizierung Methode Fehler, wenn Sie den falschen Benutzernamen für die Anmeldung verwenden. Aber ich finde etwas anderes, wenn Sie noch kämpfen mit Verbindungsproblem und Sie haben alle oben genannten Optionen versucht.

Ich habe paar Linux VM erstellt und versuchen, solche Verbindung Problem zu reproduzieren, eine Sache, die ich gefunden habe, wenn AWS Sie gebeten, Ihr Schlüsselpaar zu nennen, nicht Benutzer Leerzeichen ("") und Punkt (".") In Schlüssel Paarname, sogar AWS erlaubt es Ihnen tatsächlich, dies zu tun.

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

Hoffe, das wird ein wenig helfen.

-1

Während der SSH-Sitzung brach meine Verbindung, seitdem kann ich meinen SRV nicht ssh, ich hatte eine neue Instanz gestartet, und ich kann die neue Instanz ssh (mit dem gleichen Schlüssel).

Ich habe das alte Volume auf dem neuen Rechner gemountet und die .ssh/authorized_key überprüft und konnte kein Problem mit Erlaubnis oder Inhalt finden.

0

Ich hatte das gleiche Problem, ich verwendete Public DNS anstelle von Public IP. Es hat sich jetzt aufgelöst.

3

Ich hatte das gleiche Problem, durch Zufall Fehler. Ich werde es hier teilen, falls jemand den gleichen Fehler gemacht haben könnte. Grundlegende Schritte, wie andere beschrieben. 1, laden Sie Putty und Puttygen oder das Putty-Paket 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, so dass Sie einen privaten Schlüssel haben --- Fehler passiert hier. Ich habe die Registerkarte "Conversions" von PuttyGen ausgewählt und meine .pem-Datei geladen. Nach dem Laden der PEM-Datei, drücken Sie NICHT "Generate", sondern direkt "Save private key". Das ist der Schlüssel, den du brauchst. Wenn Sie auf "Generieren" klicken, haben Sie ein völlig anderes Schlüsselpaar. 4, in Putty, verwenden Sie [email protected], und laden Sie den privaten Schlüssel unter SSH/Auth Viel Glück!

+0

Dank eine Tonne Tony. –