WARNUNG: UNGESCHÜTZTE PRIVATE KEY FILE! beim Versuch, SSH in Amazon EC2 Instance

I'm working to set up Panda on an Amazon EC2 instance. I set up my account and tools last night and had no problem using SSH to interact with my own personal instance, but right now I'm not being allowed permission into Panda's EC2 instance. Getting Started with Panda

Ich erhalte den folgenden Fehler:

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Ich habe mein Schlüsselpaar auf 600 gesetzt, um letzte Nacht in meine persönliche Instanz zu kommen, und habe ausführlich versucht, die Berechtigungen auf 0 zu setzen und sogar neue Schlüsselzeichenfolgen zu erzeugen, aber nichts scheint zu funktionieren.

Jede Hilfe wäre eine große Hilfe!


Hm, es sieht so aus, als ob das Skript ec2-run-instances meine Schlüsseldateien nicht finden kann, wenn die Berechtigungen nicht auf 777 gesetzt sind. Ich bin neu bei SSH, also könnte ich etwas übersehen.

123
Sie müssen u = rw und go = chmod Befehle für die Datei angeben - lesen/schreiben Sie nur für den Benutzer (oder lesen Sie einfach/400). Hoffnung das hilft.
hinzugefügt der Autor Aniket Thakur, Quelle
@MikeNereson: Fühlen Sie sich frei, es zu bearbeiten, so machen wir es hier besser
hinzugefügt der Autor Stu Thompson, Quelle
Sind Sie sicher, dass Sie es auf 0600 (oktal) und nicht auf 600 (dezimal) setzen?
hinzugefügt der Autor hyde, Quelle
schrecklicher Titel für diese Frage.
hinzugefügt der Autor MikeNereson, Quelle
chmod 400 ~/.ssh/id_rsa Referenz: stackoverflow.com/a/9270753/2082569
hinzugefügt der Autor atulkhatri, Quelle
ec2-run-instances sollten nur einen Schlüsselpaarnamen benötigen, was auf Amazon-Seite liegt. Sie sollten nur Ihren eigentlichen privaten Schlüssel (den auf der Festplatte) verwenden, wenn Sie sich anmelden. Welchen Fehler bekommen Sie von ec2-run-instances?
hinzugefügt der Autor user27619, Quelle

6 Antworten

Ich habe mein Schlüsselpaar auf 600 gesetzt, um letzte Nacht in meine persönliche Instanz zu kommen,

Und so soll es sein.

Aus der EC2-Dokumentation haben wir "Wenn Sie" Wenn Sie OpenSSH (oder einen halbwegs paranoiden SSH-Client) verwenden, müssen Sie wahrscheinlich die Berechtigungen dieser Datei so festlegen, dass sie nur für Sie lesbar ist. " Die Panda-Dokumentation, die Sie mit Links zu Amazon-Dokumentation verknüpfen, tut dies aber wirklich nicht vermitteln nicht, wie wichtig alles ist.

Die Idee ist, dass die Schlüsselpaare wie Passwörter sind und geschützt werden müssen. Der von Ihnen verwendete ssh-Client erfordert also, dass diese Dateien gesichert sind und nur Ihr Konto sie lesen kann.

Das Verzeichnis auf 700 zu setzen sollte eigentlich ausreichen, aber 777 wird nicht schaden, solange die Dateien 600 sind.

Alle Probleme, die Sie haben, sind Client-Seite, also achten Sie darauf, lokale Betriebssystem-Informationen mit Follow-up-Fragen enthalten!

149
hinzugefügt
@StuThompson Link zu EC2 Dokumentation scheint tot zu sein. Kannst du bitte updaten?
hinzugefügt der Autor Aniket Thakur, Quelle
Nevermind hat den Link aktualisiert. Vielen Dank.
hinzugefügt der Autor Aniket Thakur, Quelle
@tobixen: Zwei Jahre werden kommen, aber ... die 'richtige' Problemumgehung wäre, den Schlüssel in einen dedizierten Benutzer zu legen und den Gruppenbenutzern sudo den Zugriff zu erlauben, diesen Befehl als dedizierter Benutzer auszuführen.
hinzugefügt der Autor Stu Thompson, Quelle
doing chmod 700 filenmane.pem hat funktioniert, danke
hinzugefügt der Autor Rich Fox, Quelle
Ich bin gerade in eine Situation heute gekommen, wo ich will, dass die Schlüsseldatei Gruppen lesbar (mit ssh nicht für persönliche Anmeldung, sondern um ein Skript auf einem Remote-Server, dedizierten Benutzer auf dem Remote-Server für diesen Zweck, authorized_keys nur so gesperrt Dieses Skript wird ausgeführt, und mehrere Personen auf dem Ursprungsserver sollten Zugriff auf das Skript haben. Naja, ich denke, die einfache Lösung besteht darin, Kopien in ~/.ssh/für alle Benutzer, die Zugriff haben sollen, zu speichern - oder authorized_keys mit allen persönlichen Schlüsseln zu füllen.
hinzugefügt der Autor tobixen, Quelle

Make sure that the directory containing the private key files is set to 700

chmod 700 ~/.ec2
40
hinzugefügt
Ich habe das nur in der .pem-Datei verwendet und es hat für mich funktioniert.
hinzugefügt der Autor CGTheLegend, Quelle
Gibt es einen besonderen Grund, warum Sie Ausführungsprivilegien für die Datei haben möchten?
hinzugefügt der Autor Zoltán, Quelle
@ Zoltán ist ein Verzeichnis, keine Datei.
hinzugefügt der Autor avmohan, Quelle
Danke, das funktioniert auch für mich.
hinzugefügt der Autor Rubyrider, Quelle
Diese Antwort kommt auf den Punkt :)
hinzugefügt der Autor Populus, Quelle

Um dies zu beheben, müssen Sie die Berechtigungen auf den Standardwert zurücksetzen:

sudo chmod 600 ~/.ssh/id_rsa  sudo chmod 600 ~/.ssh/id_rsa.pub

Wenn Sie einen weiteren Fehler erhalten: Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)? Ja Fehler beim Hinzufügen des Hosts zur Liste der bekannten Hosts (/home/geek/.ssh/known_hosts).

2) Dies bedeutet, dass die Berechtigungen für diese Datei ebenfalls falsch gesetzt sind und damit angepasst werden können:

sudo chmod 644 ~/.ssh/bekannte_hosts

3) Schließlich müssen Sie möglicherweise auch die Verzeichnisberechtigungen anpassen:

sudo chmod 755 ~/.ssh

Dies sollte dich wieder zum Laufen bringen.

15
hinzugefügt

Die private Schlüsseldatei sollte geschützt werden. In meinem Fall benutze ich die public_key-Authentifizierung für eine lange Zeit und ich habe die Berechtigung als 600 (rw- --- ---) für den privaten Schlüssel und 644 (rw- r-- r--) und für gesetzt der .ssh-Ordner im Home-Ordner haben Sie 700 Erlaubnis (rwx --- ---). Um dies festzulegen, gehen Sie in den Benutzerordner des Benutzers und führen Sie den folgenden Befehl aus


Set the 700 permission for .ssh folder

chmod 700 .ssh


Set the 600 permission for private key file

chmod 600 .ssh/id_rsa


Set 644 permission for public key file

chmod 644 .ssh/id_rsa.pub
5
hinzugefügt

Bewahren Sie Ihren privaten Schlüssel, öffentlichen Schlüssel, known_hosts im gleichen Verzeichnis auf und versuchen Sie es wie folgt:

ssh -I(small i) "hi.pem" [email protected]---.us-west-2.compute.amazonaws.com

  • Gleiches Verzeichnis in dem Sinne, cd/Benutzer/Prinz/Desktop Geben Sie jetzt den Befehl ls ein Das solltest du sehen **. pem **. ppk known_hosts

Hinweis: Sie müssen versuchen, sich aus demselben Verzeichnis anzumelden. Andernfalls erhalten Sie den Fehler "permission denied", da die Datei ".ppm" nicht vom aktuellen Verzeichnis übernommen werden kann.

1
hinzugefügt

Ich denke über etwas anderes nach, wenn Sie versuchen, sich mit einem anderen Benutzernamen anzumelden, der nicht existiert, ist dies die Nachricht, die Sie erhalten werden.

Also ich nehme an, dass Sie versuchen, mit ec2-Benutzer ssh, aber ich erinnere mich kürzlich die meisten Centos AMIs zum Beispiel verwenden centos Benutzer anstelle von ec2-Benutzer

also wenn du es bist ssh -i file.pem centos @ public_IP Bitte sagen Sie mir, dass Sie mit dem richtigen Benutzernamen auf ssh zugreifen, da dies ein starker Grund für Sie sein könnte, solch eine Fehlermeldung zu sehen, selbst mit den richtigen Rechten auf Ihrem ~/.ssh/id_rsa oder file.pem

0
hinzugefügt