999 Stimmen

"UNGESCHÜTZTE PRIVATE SCHLÜSSELDATEI!" Fehler bei der Verwendung von SSH in einer Amazon EC2-Instanz (AWS)

Ich habe eine neue Linux-Instanz auf Amazon EC2 erstellt, und als Teil davon habe ich die .pem Datei, damit ich mich per SSH einloggen kann.

Als ich versuchte ssh mit:

ssh -i myfile.pem <public dns>

Ich habe:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

Unter diese Stelle Ich habe versucht chmod +600 die .pem Datei, aber wenn ich jetzt ssh Ich bekomme nur

Permission denied (publickey).

Welchen Schuljungenfehler mache ich hier? Die .pem Datei befindet sich in meinem Home-Ordner (unter macOS). Ihre Berechtigungen sehen wie folgt aus:

-rw-------@   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem

2voto

CHAVDA MEET Punkte 589

Wenn Sie nicht in Root sind, führen Sie folgenden Befehl aus

sudo chmod 400 -R myfile.pem

Nicht ist Root dann führen Sie diesen Befehl aus

chmod 400 -R myfile.pem

2voto

Abhijit Barua Punkte 31

Ich habe zwei Gründe für dieses Problem gesehen

1) Der Zugangsschlüssel hat nicht die richtige Berechtigung. pem-Schlüssel mit Standardberechtigung dürfen keine sichere Verbindung herstellen. Sie müssen nur die Berechtigung ändern:

chmod 400 xyz.pem

2) Überprüfen Sie auch, ob Sie sich mit den richtigen Benutzerdaten angemeldet haben. Andernfalls verwenden Sie sudo beim Verbinden

sudo ssh -i {Schlüsseldatei} ec2-user@{IP-Adresse des entfernten Hosts}

2voto

Keith Punkte 37

Wenn Sie eine Verbindung von Windows aus herstellen, führen Sie die folgenden Schritte auf Ihrem lokalen Computer durch.

  1. Navigieren Sie zu Ihrer .pem-Datei.

  2. Klicken Sie mit der rechten Maustaste auf die .pem-Datei und wählen Sie Eigenschaften.

  3. Wählen Sie die Registerkarte Sicherheit.

  4. Wählen Sie Erweitert.

  5. Vergewissern Sie sich, dass Sie der Eigentümer der Datei sind. Falls nicht, ändern Sie den Eigentümer in Ihren Benutzernamen.

  6. Wählen Sie Vererbung deaktivieren und Alle geerbten Berechtigungen von diesem Objekt entfernen.

  7. Wählen Sie Hinzufügen, wählen Sie einen Auftraggeber, geben Sie Ihren Benutzernamen ein und wählen Sie OK.

  8. Erteilen Sie im Fenster Berechtigungseintrag die Berechtigung Lesen und wählen Sie OK.

  9. Klicken Sie auf Übernehmen, damit alle Einstellungen gespeichert werden.

  10. Wählen Sie OK, um das Fenster Erweiterte Sicherheitseinstellungen zu schließen.

  11. Wählen Sie OK, um das Fenster Eigenschaften zu schließen.

  12. Sie sollten in der Lage sein, sich von Windows aus über SSH mit Ihrer Linux-Instanz zu verbinden.

Führen Sie in einer Windows-Eingabeaufforderung die folgenden Befehle aus.

  1. Führen Sie den folgenden Befehl aus, um explizite Berechtigungen zurückzusetzen und zu entfernen: icacls.exe $Pfad /zurücksetzen
  2. Führen Sie den folgenden Befehl aus, um dem aktuellen Benutzer Leserechte zu erteilen: icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
  3. Führen Sie den folgenden Befehl aus, um die Vererbung zu deaktivieren und vererbte Berechtigungen zu entfernen: icacls.exe $path /inheritance:r

Sie sollten in der Lage sein, sich von Windows aus über SSH mit Ihrer Linux-Instanz zu verbinden.

2voto

Ujwal Abhishek Punkte 330

Es handelt sich lediglich um ein Berechtigungsproblem mit Ihrem aws pem-Schlüssel.

Ändern Sie einfach die Berechtigung des pem-Schlüssels mit dem unten stehenden Befehl auf 400.

chmod 400 pemkeyname.pem

Wenn Sie keine Berechtigung haben, die Berechtigung einer Datei zu ändern, können Sie sudo wie den folgenden Befehl verwenden.

sudo chmod 400 pemkeyname.pem

Wenn das nicht funktioniert, folgen Sie einfach diesem Video, um die Schlüssel auf Ihrer EC2-Instanz zu ändern. Sie können nun ein öffentliches/privates Schlüsselpaar auf Ihrer Instanz installieren.

https://youtu.be/LvLlRCrS8B4

2voto

singh30 Punkte 1205

Die Schlüsseldatei sollte nicht öffentlich einsehbar sein, also verwenden Sie die Berechtigung 400

chmod 400 keyfile.pem

Wenn der obige Befehl einen Berechtigungsfehler anzeigt, verwenden Sie

sudo chmod 400 keyfile.pem

Jetzt ssh in die ec2-Maschine, wenn Sie immer noch das Problem haben, verwenden Sie ec2-Benutzer

ssh -i keyfile.pem ec2-user@ec2-12-34-56-78.compute-1.amazonaws.com

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