30 Stimmen

Berechtigungsfehler bei der Verbindung zu EC2 über SSH unter Mac OSx

Ich bin neu bei EC2. Ich habe meine Sicherheitsanmeldeinformationen von dieser Website erstellt:

http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2

Es hat wunderbar funktioniert, ich habe neu gebootet und jetzt, wenn ich versuche, eine Verbindung herzustellen, erhalte ich eine Aufforderung zur Anmeldung/Passwort (die ich nie eingerichtet habe):

Erlaubnis verweigert (publickey,gssapi-with-mic).

Was mache ich falsch?

68voto

gareth_bowles Punkte 20258

Mir fallen da zwei Möglichkeiten ein, die allerdings beide in dem von Ihnen angegebenen Link erwähnt werden:

  1. Sie geben nicht die richtige SSH-Schlüsselpaardatei oder den richtigen Benutzernamen in dem ssh-Befehl an, mit dem Sie sich beim Server anmelden:

    ssh -i [vollständiger Pfad zur Schlüsselpaar-Datei] Root@[EC2-Instanz-Hostname oder IP-Adresse]

  2. Sie haben nicht die richtigen Berechtigungen für die Schlüsselpaardatei; Sie sollten die

    chmod 600 [Schlüsselpaar-Datei]

um sicherzustellen, dass nur Sie die Datei lesen oder schreiben können.

Versuchen Sie, die Option -v in ssh zu verwenden, um mehr Informationen darüber zu erhalten, wo genau der Fehler auftritt, und posten Sie hier, wenn Sie weitere Hilfe benötigen.

[Update]: OK, das ist also, was Sie debe haben gesehen, ob alles richtig eingestellt war:

debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

Führen Sie den ssh-Befehl von dem Verzeichnis aus, in dem sich die Datei ec2-keypair befindet? Wenn ja, versuchen Sie, -i ./ec2-keypair anzugeben, um Pfadprobleme auszuschließen. Überprüfen Sie auch die Datei "ls -l [vollständiger Pfad zu ec2-keypair]" und vergewissern Sie sich, dass die Berechtigungen 600 sind (angezeigt als rw-------). Wenn das alles nicht funktioniert, würde ich den Inhalt der Keypair-Datei verdächtigen, also versuchen Sie, sie mit den Schritten in Ihrem Link neu zu erstellen.

17voto

slackhacker Punkte 513

Der Schlüssel, um eine Verbindung herstellen zu können, war die Verwendung des Benutzers "ec2-user" anstelle von Root. D.h.:

ssh -i [full path to keypair file] ec2-user@[EC2 instance hostname or IP address]

7voto

Jie Punkte 51

Ich hatte dieses Problem auch, und ich fand heraus, dass es passiert ist, weil ich vergessen habe, den Benutzernamen vor dem Hostnamen hinzuzufügen: etwa so:

ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com

und ich füge den Benutzernamen hinzu:

ssh -i test.pem ec2-user@ec2-32-122-42-91.us-west-2.compute.amazonaws.com

Es funktioniert!

7voto

Jacques Betancourt Punkte 2264

+1

Ich habe festgestellt, dass bei einigen AMIs wie Amazon Linux ec2-user@xxx.XX.XX.XXX funktioniert. Aber für ein Ubuntu-Image musste ich stattdessen ubuntu@ verwenden. Es war nie ein Problem mit der .pem, nur mit dem Benutzernamen.

6voto

Ko-Chih Wu Punkte 632

In meinem Fall liegt es daran, dass die Berechtigung für mein Home-Verzeichnis 775 ist, und SSH ist darüber nicht glücklich. Nach dem Ausführen sollte es funktionieren:

server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys

Ich habe heute Nachmittag eine sehr ähnliche Erfahrung gemacht. Ich war dabei, django auf EC2 einzurichten, und plötzlich kann ich mich nicht mehr per SSH in die Box einloggen. Ich war froh, dass ich noch eine aktive Verbindung hatte, also modifizierte ich /etc/ssh/sshd_config zu setzen:

PasswordAuthentication yes

und setzen Sie das Passwort für ec2-user dann kann ich mich durch Eingabe des Passworts anmelden.

Nach einigem Googeln fand ich jedoch diesen Thread: http://ubuntuforums.org/showthread.php?t=577279 . Es stellte sich heraus, dass ich während der Einrichtung von django die Berechtigung für mein Home-Verzeichnis geändert hatte, und SSH ist in dieser Hinsicht sehr streng. Die Dateiberechtigung muss also korrekt eingestellt sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X