it-swarm.com.de

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

Ich bin neu bei EC2. Ich habe meine Sicherheitsnachweise von dieser Site erstellt:

http://paulstamatiou.com/how-to-getting-started-mit-Amazon-ec2

Es hat super funktioniert, ich habe neustarten und jetzt, wenn ich versuche, eine Verbindung herzustellen, bekomme ich eine Login/Passwort-Eingabeaufforderung. (Was ich nie eingerichtet habe.) Nach mehreren Versuchen bekomme ich diesen Fehler:

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

Was mache ich falsch?

25
Joshua Scott

Zwei Möglichkeiten, die mir einfallen, obwohl sie beide in dem Link erwähnt werden, auf den Sie verwiesen haben:

  1. Sie geben nicht die richtige SSH-Schlüsselpaardatei oder den richtigen Benutzernamen in dem Befehl ssh an, den Sie zum Anmelden am Server verwenden:

    ssh -i [vollständiger Pfad zur Schlüsselpaardatei] root @ [Hostname oder IP-Adresse der EC2-Instanz]

  2. Sie haben nicht die richtigen Berechtigungen für die Schlüsselpaardatei. du solltest benutzen

    chmod 600 [Schlüsselpaardatei]

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

Versuchen Sie, die Option -v mit ssh zu verwenden, um mehr Informationen darüber zu erhalten, wo genau dies fehlgeschlagen ist. Wenn Sie weitere Hilfe benötigen, können Sie hier posten.

[Update]: OK, also haben Sie sollte gesehen, ob alles richtig eingerichtet wurde: 

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 Befehl ssh in dem Verzeichnis aus, in dem sich die ec2-keypair-Datei befindet? Wenn ja, versuchen Sie, -i ./ec2-keypair anzugeben, um Pfadprobleme zu beseitigen. Überprüfen Sie auch die Datei "ls -l [vollständiger Pfad zum ec2-keypair]" und stellen Sie sicher, dass die Berechtigungen 600 sind (angezeigt als rw -------). Wenn dies alles nicht funktioniert, würde ich den Inhalt der Schlüsselpaardatei vermuten. Versuchen Sie es daher mit den Schritten in Ihrem Link.

55
gareth_bowles

Der Schlüssel für mich, um eine Verbindung herstellen zu können, war die Verwendung des Benutzers "ec2-user" anstelle von root. I.e .:

ssh -i [full path to keypair file] [email protected][EC2 instance hostname or IP address]
14
slackhacker

In meinem Fall liegt das daran, dass die Berechtigung für mein Heimatverzeichnis 775 lautet und SSH darüber nicht glücklich ist. Es sollte nach der Ausführung funktionieren:

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

Ich hatte heute Nachmittag sehr ähnliche Erfahrungen. Ich habe Django auf EC2 eingerichtet, und plötzlich kann ich nicht mehr in die Box gehen. Ich bin froh, dass ich noch eine aktive Verbindung hatte, also /etc/ssh/sshd_config geändert:

PasswordAuthentication yes

und setze Passwort für ec2-user, dann kann ich mich durch Eingabe des Passworts anmelden.

Nach einigem Googeln fand ich diesen Thread: http://ubuntuforums.org/showthread.php?t=577279 . Es stellte sich heraus, dass ich während des Setups von Django die Erlaubnis für mein Heimatverzeichnis geändert habe, und SSH ist sehr streng. Die Dateiberechtigung muss also richtig eingestellt sein.

5
Ko-Chih Wu

Ich hatte auch dieses Problem getroffen. Und ich fand das passiert, weil ich vergessen hatte, den Benutzernamen vor dem Hostnamen hinzuzufügen:

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 [email protected]

es klappt!

4
Jie

Stichworte zu mecca831s Antwort:

ssh -v -i generated-key.pem [email protected]

[[email protected] ~] $ Sudo passwd ec2-user neuesKennwort neuesKennwort

[[email protected] ~] $ Sudo vi /etc/ssh/sshd_configModifizieren Sie die Datei wie folgt:

    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication yes
    #PermitEmptyPasswords no
    # EC2 uses keys for remote access
    #PasswordAuthentication no

Sparen

[[email protected] ~] $ Sudo-Dienst sshd stop [[email protected]] $ Sudo-Dienst sshd start

sie sollten in der Lage sein, ssh wie folgt zu beenden:

ssh [email protected]

und aufgefordert werden, ein Kennwort einzugeben, das den Schlüssel nicht mehr benötigt.

4
Pelli

Sind Sie sicher, dass Sie die richtige Instanz verwendet haben? Ich stieß auf dieses Problem und erkannte, dass in etwa vier der von mir getesteten Ubuntu-Instanzen keine SSH-Server installiert waren. 

Eine Liste guter Server finden Sie unter "Bilder abrufen" etwa zur Hälfte. Klingt, als würden Sie vielleicht etwas anderes verwenden ... der Standard-Benutzername ist ubuntu für diese Bilder.

https://help.ubuntu.com/community/EC2StartersGuide

3
shigeta

Nach etwa einer halben Stunde Suche und dem Versuch, dieses Problem zu beheben, konnte ich es herausfinden. Meine Situation beinhaltete, dass ich dieselbe Pem-Datei für zwei verschiedene ec2-Instanzen verwendete und für die eine und nicht für die andere funktionierte. 

Meine erste Instanz, an der gearbeitet wurde, war die Standardversion von aws linux AMI amzn-AMI-hvm-2014.03.2.x86_64-ebs. Ich habe einfach gebraucht 

ssh -i mypemfile.pem [email protected] 

und es hat funktioniert.

Ich habe dann eine Fedora-Instanz Fedora-x86_64-19-20140407-sda gestartet und den gleichen Befehl ausprobiert.

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Nachdem ich meinen Benutzernamen von ec2-user zu Fedora geändert hatte, hat es funktioniert!

ssh -i mypemfile.pem [email protected]
2
Airswoop1

+1

Ich habe bemerkt, dass für einige AMIs wie Amazon Linux [email protected] funktionieren würde. Aber für ein Ubuntu-Image musste ich stattdessen ubuntu @ verwenden. Es war nie ein Problem mit dem .pem, nur mit dem Benutzernamen.

2

Ich konnte mich mit ec2-user einloggen

ssh -i [vollständiger Pfad zur Schlüsselpaardatei] ec2-user @ [Hostname oder IP-Adresse der EC2-Instanz]

2
e1on

Keines der oben genannten Dinge hat mir geholfen, aber es schien mir vielversprechend zu sein, mit dem Benutzer zu futzing. Für meine Konfig war 'Ubuntu' richtig .....

ssh -i [vollständiger Pfad zur Schlüsselpaardatei] ubuntu @ [Hostname oder IP-Adresse der EC2-Instanz]

1
user1982176

Ich empfehle das Setzen eines Passworts, wie andere Antworten vermuten lassen. Die Verwendung der Schlüsseldatei ist sowohl sicherer (niemand kann Ihre Kennwörter erraten) als auch bequemer (sobald Sie eine Konfigurationsdatei eingerichtet haben). Hier ist ein einfacher ~/.ssh/config:

Host my-ec2-server
  HostName 11.11.11.11
  User ec2-user
  IdentityFile /path/to/generated-key.pem

Jetzt können Sie einfach ssh my-ec2-server eingeben und schon sind Sie dabei! Wie auch in anderen Antworten erwähnt, können Sie mit -v zusätzliche Informationen erhalten, wenn Ihre Verbindung nicht funktioniert.

1

Hatte ein ähnliches Problem. Hier sind die Schritte zum Einrichten von SSH-Schlüsseln und zum Weiterleiten auf dem Mac. Habe diese Notizen für mich gemacht - könnte jemandem helfen ... vergleiche mit deiner Konfiguration.

Hier wird davon ausgegangen, dass keine Tasten eingerichtet sind. Wenn Sie die Tasten bereits eingerichtet haben, überspringen Sie diesen Abschnitt.

$ ssh-keygen-t rsa-b 4096

Generierung eines öffentlichen/privaten RSA-Schlüsselpaars.

Geben Sie eine Datei ein, in der der Schlüssel gespeichert werden soll (/Users/you/.ssh/id_rsa): [Drücken Sie die Eingabetaste].

Ändern Sie ~/.ssh/config und fügen Sie den Eintrag für die Schlüsseldatei hinzu:

~/.ssh/config sollte ungefähr so ​​aussehen:

Gastgeber *

AddKeysToAgent ja

UseKeychain ja

IdentityFile ~/.ssh/id_rsa

Speichern Sie den privaten Schlüssel im Schlüsselbund:

$ ssh-add-K ~/.ssh/id_rsa

Testen Sie es jetzt mit: ssh-A username @ yourhostname

Sollte Ihren Schlüssel an Ihren Hostnamen weiterleiten. Vorausgesetzt, Ihre Schlüssel werden hinzugefügt, sollten Sie eine Verbindung ohne Probleme herstellen.

0
user2441357

Wenn das Problem konsistent ist und auch nach dem Ändern der Dateiberechtigungen auf 400 oder 600 ungefähr 10 bis 15 Mal hintereinander aufgetreten ist, ist dies höchstwahrscheinlich in der ec2-Instanz falsch. Stellen Sie daher Folgendes sicher: 1. Überprüfen Sie die Protokolle, wenn Sie versuchen, der Instanz ssh zuzuweisen, indem Sie am Ende -v hinzufügen, und sehen, dass entweder etwas aussagekräftig ist. 2. Vergewissern Sie sich, dass Sie den richtigen Namen für ssh verwenden, beispielsweise Ubuntu. Vielleicht hängt das von der Linux-Distribution und den Benutzern ab, die Sie hinzugefügt haben, und entweder haben Sie die Berechtigung für "root user" ssh ..__ erteilt. Wenn nichts hilft, folgen Sie der Dokumentation hier https://docs.aws.Amazon.com/ AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html # TroubleshootingInstancesConnectingMindTerm , Um das Problem zu beheben. Es hat in meinem Fall geholfen, und es geschah aufgrund von versauten Verzeichnissen/Dateien.

0
Alex

Wenn Sie eine PPK-Datei haben, die auf einem PC läuft, exportieren Sie sie mit puttygen.exe für den PC als OpenSSH-Datei und verwenden Sie diese auf einem Mac (einem beliebigen Unix-Computer).

Ich habe den gleichen Fehler bekommen -

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: Authentications that can continue: publickey,gssapi-with-mic
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-with-mic)

Da ich eine PPK-Datei unter Windows verwendete, folgte ich den oben beschriebenen Schritten und Bingo!

$ ssh -i ec2-openssh-key root @ ec2-instance-ip

0
Sreekanth

Ich hatte das gleiche Problem bei der Verwendung des AWS Toolkit für Eclipse. Ich habe die Getting Started-Instanz OK erstellt und eine Shell geöffnet. Der Benutzer wurde jedoch auf ec2-user gesetzt. Ich habe den Befehl Open Shell As ... verwendet und den Benutzer auf root gesetzt. Dann hat es funktioniert.

0
Arthur Ryman