Ich arbeite daran, Panda auf einer Amazon EC2-Instanz einzurichten. Ich habe gestern Abend mein Konto und meine Tools eingerichtet und hatte kein Problem damit, mit SSH mit meiner persönlichen Instanz zu interagieren, aber im Moment wird mir keine Erlaubnis für Pandas EC2-Instanz erteilt. Erste Schritte mit Panda
Ich erhalte die folgende Fehlermeldung:
@ 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 geändert, um in meine persönliche Instanz zu gelangen, und habe lange experimentiert, die Berechtigungen auf 0 zu setzen und sogar neue Schlüsselzeichenfolgen zu generieren, aber nichts scheint zu funktionieren.
Jede Hilfe wäre eine große Hilfe!
Hm, es scheint, als ob das Skript ec2-run-instance meine Schlüsseldateien nicht finden kann, wenn die Berechtigungen für das Verzeichnis nicht auf 777 festgelegt sind. Ich bin neu bei SSH, daher kann ich etwas übersehen.
quelle
chmod 400 ~/.ssh/id_rsa
Referenz: stackoverflow.com/a/9270753/2082569Antworten:
Und so soll es sein.
In der EC2-Dokumentation heißt es: "Wenn Sie OpenSSH (oder einen einigermaßen paranoiden SSH-Client) verwenden, müssen Sie wahrscheinlich die Berechtigungen für diese Datei so festlegen, dass sie nur von Ihnen gelesen werden kann." Die Panda-Dokumentation, die Sie mit Links zur Amazon-Dokumentation verknüpfen, vermittelt jedoch nicht, wie wichtig alles ist.
Die Idee ist, dass die Schlüsselpaardateien wie Passwörter sind und geschützt werden müssen. Der von Ihnen verwendete SSH-Client erfordert also, dass diese Dateien gesichert sind und dass nur Ihr Konto sie lesen kann.
Das Einstellen des Verzeichnisses auf 700 sollte eigentlich ausreichen, aber 777 wird nicht schaden, solange die Dateien 600 sind.
Alle Probleme, die Sie haben, sind clientseitig. Geben Sie daher bei weiteren Fragen unbedingt Informationen zum lokalen Betriebssystem an!
quelle
Stellen Sie sicher, dass das Verzeichnis mit den privaten Schlüsseldateien auf 700 festgelegt ist
quelle
Um dies zu beheben, 1) müssen Sie die Berechtigungen auf die Standardeinstellungen zurücksetzen:
sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub
Wenn Sie einen weiteren Fehler erhalten: Möchten Sie die Verbindung wirklich fortsetzen (Ja / Nein)? yes 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 eingestellt sind und folgendermaßen angepasst werden können:
sudo chmod 644 ~/.ssh/known_hosts
3) Schließlich müssen Sie möglicherweise auch die Verzeichnisberechtigungen anpassen:
sudo chmod 755 ~/.ssh
Dies sollte Sie wieder zum Laufen bringen.
quelle
Die private Schlüsseldatei sollte geschützt sein. In meinem Fall habe ich die public_key-Authentifizierung schon lange verwendet und die Berechtigung für den privaten Schlüssel auf 600 (rw- --- ---) und für 644 (rw- r-- r--) und für festgelegt Für den Ordner .ssh im Home-Ordner haben Sie die Berechtigung 700 (rwx --- ---). Um dies einzustellen, gehen Sie zum Home-Ordner des Benutzers und führen Sie den folgenden Befehl aus
Legen Sie die 700- Berechtigung für den Ordner .ssh fest
Legen Sie die 600- Berechtigung für die private Schlüsseldatei fest
Legen Sie die 644- Berechtigung für die Datei mit öffentlichem Schlüssel fest
quelle
Ich habe auch das gleiche Problem, aber ich behebe es, indem ich meine Berechtigung für die Schlüsseldatei auf 600 ändere.
sudo chmod 600 /path/to/my/key.pem
Link: http://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/
quelle
Bewahren Sie Ihren privaten Schlüssel, den öffentlichen Schlüssel und die bekannten Hosts im selben Verzeichnis auf und versuchen Sie, sich wie folgt anzumelden:
cd /Users/prince/Desktop
. Gebenls
Sie nun den Befehl ein und Sie sollten sehen**.pem **.ppk known_hosts
Hinweis: Sie müssen versuchen, sich aus demselben Verzeichnis anzumelden, da sonst die Fehlermeldung "Berechtigung verweigert" angezeigt wird, da die PEM-Datei aus Ihrem aktuellen Verzeichnis nicht gefunden werden kann.
Wenn Sie SSH aus einem beliebigen Verzeichnis ausführen möchten, können Sie Folgendes hinzufügen
~/.ssh/config
Datei ...Jetzt können Sie SSH auf Ihren Server übertragen, unabhängig davon, wo sich das Verzeichnis befindet, indem Sie einfach
ssh your.server
(oder einen beliebigen Namen, den Sie nach "Host" eingeben) eingeben .quelle
Versuchen Sie unter Windows, git bash zu verwenden, und verwenden Sie dort Ihre Linux-Befehle. Einfacher Ansatz
quelle
Ändern Sie die Dateiberechtigung mit dem Befehl chmod
quelle
Ich denke an etwas anderes. Wenn Sie versuchen, sich mit einem anderen Benutzernamen anzumelden, der nicht vorhanden ist, erhalten Sie diese Nachricht.
Ich gehe davon aus, dass Sie möglicherweise versuchen, mit ec2-user ssh zu verwenden, aber ich erinnere mich, dass in letzter Zeit die meisten Centos-AMIs beispielsweise centos user anstelle von ec2-user verwenden
Wenn Sie dies tun, teilen
ssh -i file.pem centos@public_IP
Sie mir bitte mit, dass Sie mit dem richtigen Benutzernamen zu ssh wechseln. Andernfalls kann dies ein starker Grund dafür sein, dass Sie eine solche Fehlermeldung auch mit den richtigen Berechtigungen für Ihre ~ / .ssh / id_rsa oder file.pem sehenquelle
Nur eine Anmerkung für alle, die darauf stoßen:
Wenn Sie versuchen, SSH mit einem Schlüssel durchzuführen, der für Sie freigegeben wurde, zum Beispiel:
ssh -i /path/to/keyfile.pem user@some-host
Wo
keyfile.pem
wird der private / öffentliche Schlüssel für Sie freigegeben und Sie verwenden ihn zum Herstellen einer Verbindung ? Stellen Sie sicher, dass Sie ihn in~/.ssh/
und speichernchmod 777
.Der Versuch, die Datei zu verwenden, als sie an anderer Stelle auf meinem Computer gespeichert wurde, gab den OP-Fehler aus. Ich bin mir nicht sicher, ob es in direktem Zusammenhang steht.
quelle
Die Lösung besteht darin, sie nur für den Eigentümer der Datei lesbar zu machen, dh die letzten beiden Ziffern der Darstellung im Oktalmodus sollten Null sein (z
0400
. B. Modus ).OpenSSH checkt dies
authfile.c
in einer Funktion mit dem Namen einsshkey_perm_ok
:Siehe die erste Zeile nach dem Kommentar: Es wird ein "bitweises und" gegen den Modus der Datei ausgeführt, wobei alle Bits in den letzten beiden Oktalziffern ausgewählt werden (da
07
ist Oktal für0b111
, wobei jedes Bit für r / w / x steht). .quelle