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

Nun, wenn ich mir Ihre Beitragsbeschreibung ansehe, habe ich das Gefühl, dass Sie 2 Fehler gemacht haben:-

  1. Setzen Sie die richtigen Berechtigungen für den privaten Schlüssel . Der folgende Befehl sollte Ihnen helfen, die korrekte Dateiberechtigung zu setzen.

    chmod 0600 mykey.pem

  2. Sie versuchen sich als falscher ec2-Benutzer anzumelden .

    Wenn ich mir Ihr Debug-Protokoll ansehe, denke ich, dass Sie eine Amazon-Linux-Instanz erzeugt haben. Der Standardbenutzer für diesen Instanztyp ist ec2-user . Wäre die Instanz ubuntu gewesen, wäre Ihr Standardbenutzer ubuntu .

    ssh -i privatekey.pem default_ssh_user@server_ip

Note:
   For an Amazon Linux AMI, the default user name is ec2-user.

   For a Centos AMI, the default user name is centos.

   For a Debian AMI, the default user name is admin or root.

   For a Fedora AMI, the default user name is ec2-user or fedora.

   For a RHEL AMI, the default user name is ec2-user or root.

   For a SUSE AMI, the default user name is ec2-user or root.

   For an Ubuntu AMI, the default user name is ubuntu.

   Otherwise, if ec2-user and root don't work, check with the AMI provider.

Quelle: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

2voto

sathee005 Punkte 57

Führen Sie chmod 400 yourkeyfile.pem aus. Wenn Ihre Instanz Amazon linux ist, verwenden Sie ssh -i yourkeyfile.pem ec2-user@ip für ubuntu ssh -i ihre schluesseldatei.pem ubuntu@ip für centos ssh -i ihre schluesseldatei.pem centos@ip

2voto

Rishabh Agrahari Punkte 3141

Das Problem bei mir war, dass sich meine .pem-Datei auf einer meiner NTFS-Partitionen befand. Ich habe sie auf meine Linux-Partition (ext4) verschoben.

Erteilte die erforderlichen Berechtigungen durch Ausführen:

chmod 400 my_file.pem

Und es hat funktioniert.

2voto

rahul kumar Punkte 135

Standardmäßig ist der pem-Schlüssel nicht erlaubt. Sie müssen nur die Berechtigung ändern:

chmod 400 xyz.pem

und wenn Ubuntu-Instanz dann verbinden mit:

ssh -i xyz.pem ubuntu@ec2-youraws.amazonaws.com

2voto

Prash Punkte 548

Ändern Sie einfach die Berechtigung der pem-Datei auf 0600, so dass nur der zugelassene Benutzer Zugriff hat, und es wird wie geschmiert laufen.

sudo chmod 0600 myfile.pem

Und dann versuchen, ssh wird es perfekt funktionieren.

ssh -i myfile.pem <<ssh_user>>@<<server>>

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