Beheben von Problemen mit der Verbindung Ihrer Instance
Die folgenden Informationen und häufigen Fehler können Ihnen bei der Fehlersuche für die Verbindung zu Ihrer Linux-Instance helfen.
Informationen zur Fehlerbehebung bei der Verbindung mit Windows-Instances finden Sie unter Fehlerbehebung bei Windows-Instances im Amazon-EC2-Benutzerhandbuch für Windows-Instances.
Verbindungsprobleme und -fehler
- Häufige Ursachen für Verbindungsprobleme
- Fehler beim Herstellen der Verbindung mit Ihrer Instance: „Connection timed out“
- Fehler: Schlüssel kann nicht geladen werden ... Erwartend: JEDER PRIVATE SCHLÜSSEL
- Fehler: Benutzerschlüssel wird vom Server nicht erkannt
- Fehler: Berechtigung verweigert oder Verbindung durch [instance] Port 22 geschlossen
- Fehler: Ungeschützte private Schlüsseldatei
- Fehler: Der private Schlüssel muss mit „-----BEGIN RSA PRIVATE KEY-----“ und mit „-----END RSA PRIVATE KEY-----“ enden
- Fehler: Der Server lehnte unseren Schlüssel ab oder es sind keine unterstützten Authentifizierungsmethoden verfügbar.
- Die Instance ist nicht per Ping erreichbar.
- Fehler: Der Server hat die Netzwerkverbindung unerwartet geschlossen
- Fehler: Hostschlüssel-Validierung fehlgeschlagen für EC2 Instance Connect
- Mit EC2 Instance Connect kann keine Verbindung zur Ubuntu-Instance hergestellt werden
- Ich habe meinen privaten Schlüssel verloren. Wie kann ich mich mit meiner Linux-Instance verbinden?
Häufige Ursachen für Verbindungsprobleme
Wir empfehlen, dass Sie mit der Behebung von Instance-Verbindungsproblemen beginnen, indem Sie sicherstellen, dass Sie die folgenden Aufgaben korrekt ausgeführt haben.
- Überprüfen des Benutzernamens für Ihre Instance
Sie können mit dem Benutzernamen für Ihr Benutzerkonto oder dem Standardbenutzernamen für das AMI, das Sie zum Starten Ihrer Instance verwendet haben, eine Verbindung zu Ihrer Instance herstellen.
-
Abrufen des Benutzernamens für Ihr Benutzerkonto ab.
Weitere Informationen zum Erstellen eines Benutzerkontos finden Sie unter Verwalten von Benutzern auf Ihrer Linux-Instance.
-
Abrufen des Standardbenutzernamens für das AMI, das Sie zum Starten der Instance verwendet haben:
Zum Starten der Instance verwendetes AMI Standardbenutzername Amazon Linux 2023
Amazon Linux 2
Amazon Linux
ec2-user
CentOS centos
oderec2-user
Debian admin
Fedora fedora
oderec2-user
RHEL ec2-user
oderroot
SUSE ec2-user
oderroot
Ubuntu ubuntu
Oracle ec2-user
Bitnami bitnami
Sonstige Wenden Sie sich an den AMI-Anbieter
-
- Überprüfen Sie, ob Ihre Sicherheitsgruppenregeln Datenverkehr zulassen.
-
Stellen Sie sicher, dass die mit Ihrer Instance verknüpfte Sicherheitsgruppe eingehenden SSH-Datenverkehr von Ihrer IP-Adresse zulässt. Die standardmäßige Sicherheitsgruppe für die VPC lässt keinen eingehenden SSH-Datenverkehr zu. Die über den Start-Instance-Assistenten erstellte Sicherheitsgruppe lässt eingehenden SSH-Datenverkehr standardmäßig zu. Schritte zum Hinzufügen einer Regel für eingehenden SSH-Datenverkehr zu Ihrer Linux-Instance finden Sie unter Autorisieren von eingehendem Datenverkehr für Linux-Instances. Schritte zur Überprüfung finden Sie unter Fehler beim Herstellen der Verbindung mit Ihrer Instance: „Connection timed out“.
- Stellen Sie sicher, dass Ihre Instance bereit ist.
-
Wenn Sie die Instance starten, kann es einige Minuten dauern, bis die Instance zur Verbindung bereitsteht. Überprüfen Sie Ihre Instance, um sicherzustellen, dass sie ausgeführt wird und ihre Statusüberprüfungen bestanden hat.
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Klicken Sie im Navigationsbereich auf Instances und wählen Sie anschließend Ihre Instance aus.
-
Überprüfen Sie Folgendes:
-
Stellen Sie in der Spalte Instance state (Instance-Status) sicher, dass sich Ihre Instance im
running
-Status befindet. -
Überprüfen Sie in der Spalte Status check (Statusprüfung), ob Ihre Instance die beiden Statusprüfungen bestanden hat.
-
- Sicherstellen, dass alle Voraussetzungen zum Herstellen einer Verbindung erfüllt sind
-
Stellen Sie sicher, dass Sie über alle Informationen verfügen, die Sie für die Verbindung benötigen. Weitere Informationen finden Sie unter Herstellen einer Verbindung zur Linux-Instance.
Spezifische Voraussetzungen für Verbindungstypen wie SSH, EC2 Instance Connect, OpenSSH, PuTTY und mehr finden Sie in den folgenden Optionen.
Linux oder macOS X
Wenn es sich bei Ihrem lokalen Computer-Betriebssystem um Linux oder macOS X handelt, überprüfen Sie die spezifischen Voraussetzungen für die folgenden Verbindungsoptionen:
Windows
Wenn es sich bei Ihrem lokalen Computer-Betriebssystem um Windows handelt, überprüfen Sie die spezifischen Voraussetzungen für die folgenden Verbindungsoptionen:
Fehler beim Herstellen der Verbindung mit Ihrer Instance: „Connection timed out“
Wenn Sie versuchen, eine Verbindung zu Ihrer Instance herzustellen, und die Fehlermeldung Network error:
Connection timed out
oder Error connecting to [instance], reason: ->
Connection timed out: connect
erhalten, versuchen Sie Folgendes:
Prüfen Sie Ihre Sicherheitsgruppenregeln.
Sie benötigen eine Sicherheitsgruppenregel, die den eingehenden Datenverkehr von Ihrer öffentlichen IPv4-Adresse Ihres lokalen Computers auf dem entsprechenden Port zulässt.
Überprüfen Sie die Routing-Tabelle für das Subnetz.
Sie benötigen eine Route, die den gesamten Datenverkehr außerhalb der VPC an das Internet-Gateway für die VPC sendet.
Überprüfen Sie die Access Control List (ACL) für das Subnetz.
Die Netzwerk-ACLs müssen ein- und ausgehenden Datenverkehr von Ihrer lokalen IP-Adresse auf Port 22 (für Linux-Instances) bzw. Port 3389 (für Windows-Instances) zulassen. Sie müssen auch ausgehenden Datenverkehr zu den kurzlebigen Ports (1024-65535) zulassen.
-
Öffnen Sie die Amazon VPC-Konsole unter https://console.aws.amazon.com/vpc/
. -
Wählen Sie im Navigationsbereich Subnets (Subnetze) aus.
-
Subnetz auswählen
-
Stellen Sie auf der Registerkarte Netzwerk-ACL für Eingehende Regeln sicher, dass die Regeln eingehenden Datenverkehr von Ihrem Computer auf dem erforderlichen Port zulassen. Andernfalls löschen oder ändern Sie die Regel, die den Datenverkehr blockiert.
-
Überprüfen Sie für ausgehende Regeln, ob die Regeln ausgehenden Datenverkehr zu Ihrem Computer über die kurzlebigen Ports zulassen. Andernfalls löschen oder ändern Sie die Regel, die den Datenverkehr blockiert.
Wenn sich Ihr Computer in einem Unternehmensnetzwerk befindet
Fragen Sie Ihren Netzwerkadministrator, ob die interne Firewall ein- und ausgehenden Datenverkehr von Ihrem Computer auf Port 22 (für Linux-Instances) bzw. Port 3389 (für Windows-Instances) zulässt.
Wenn auf Ihrem Computer eine Firewall aktiviert ist, überprüfen Sie, dass diese den ein- und ausgehenden Datenverkehr von Ihrem Computer auf Port 22 (für Linux-Instances) bzw. Port 3389 (für Windows-Instances) zulässt.
Prüfen Sie, ob Ihre Instance über eine öffentliche IPv4-Adresse verfügt.
Falls nicht, verknüpfen Sie eine Elastic IP-Adresse mit der Instance. Weitere Informationen finden Sie unter Elastic IP-Adressen.
Überprüfen Sie die CPU-Auslastung auf Ihrer Instance. Möglicherweise ist der Server überlastet.
AWS stellt automatisch Daten wie Amazon-CloudWatch-Metriken und Instance-Status bereit. Anhand dieser Daten können Sie feststellen, wie hoch die CPU-Auslastung auf Ihrer Instance ist, und die Verarbeitung Ihrer Lasten nach Bedarf ändern. Weitere Informationen finden Sie unter Überwachen Ihrer Instances mit CloudWatch.
-
Wenn Ihre Last variabel ist, können Sie Ihre Instances automatisch mit Auto Scaling
und Elastic Load Balancing nach oben und unten skalieren. -
Wenn Ihre Last kontinuierlich zunimmt, können Sie auf einen größeren Instance-Typ umsteigen. Weitere Informationen finden Sie unter Ändern des Instance-Typs.
Um eine Verbindung mit Ihrer Instance mit einer IPv6-Adresse herzustellen, prüfen Sie Folgendes:
-
Ihr Subnetz muss einer Routing-Tabelle zugeordnet sein, die über eine Route für IPv6-Datenverkehr (
::/0
) zu einem Internet-Gateway verfügt. -
Ihre Sicherheitsgruppenregeln müssen den eingehenden Datenverkehr von Ihrer lokalen IPv6-Adresse auf dem entsprechenden Port zulassen (22 für Linux und 3389 für Windows).
-
Ihre Netzwerk-ACL-Regeln müssen ein- und ausgehenden IPv6-Datenverkehr zulassen.
-
Wenn Sie Ihre Instance aus einem älteren AMI gestartet haben, ist sie möglicherweise nicht für DHCPv6 konfiguriert (IPv6-Adressen werden nicht automatisch von der Netzwerkschnittstelle erkannt). Weitere Informationen finden Sie unter Konfigurieren von IPv6 auf Ihren Instances im Benutzerhandbuch von Amazon VPC.
-
Ihr lokaler Computer muss über eine IPv6-Adresse verfügen und zur Verwendung von IPv6 konfiguriert sein.
Fehler: Schlüssel kann nicht geladen werden ... Erwartend: JEDER PRIVATE SCHLÜSSEL
Wenn Sie versuchen, eine Verbindung mit Ihrer Instance herzustellen und die Fehlermeldung unable to load key
... Expecting: ANY PRIVATE KEY
erhalten, ist die Datei, in der der private Schlüssel gespeichert ist, nicht korrekt konfiguriert. Auch wenn die Datei mit dem privaten Schlüssel auf .pem
endet, ist sie möglicherweise dennoch falsch konfiguriert. Eine mögliche Ursache für eine falsch konfigurierte Datei für den privaten Schlüssel ist ein fehlendes Zertifikat.
Wenn die Datei für den privaten Schlüssel falsch konfiguriert ist, führen Sie die folgenden Schritte aus, um den Fehler zu beheben.
-
Erstellen Sie ein neues Schlüsselpaar. Weitere Informationen finden Sie unter Erstellen eines Schlüsselpaars mit Amazon EC2.
Anmerkung
Alternativ können Sie auch mit einem Drittanbietertool ein neues Schlüsselpaar erstellen. Weitere Informationen finden Sie unter Erstellen Sie ein Schlüsselpaar mit einem Drittanbieter-Tool und importieren Sie den öffentlichen Schlüssel in Amazon EC2.
-
Fügen Sie das neue Schlüsselpaar Ihrer Instance hinzu. Weitere Informationen finden Sie unter Ich habe meinen privaten Schlüssel verloren. Wie kann ich mich mit meiner Linux-Instance verbinden?.
-
Stellen Sie mittels des neuen Schlüsselpaars eine Verbindung mit Ihrer Instance her.
Fehler: Benutzerschlüssel wird vom Server nicht erkannt
Bei Verwendung von SSH zum Verbinden mit Ihrer Instance
-
Verwenden Sie
ssh -vvv
, um beim Herstellen der Verbindung ausführliche Debugging-Informationen zu erhalten:ssh -vvv -i
path/key-pair-name
.peminstance-user-name
@ec2-203-0-113-25.compute-1.amazonaws.com
Die folgende Beispielausgabe veranschaulicht, was Sie sehen, wenn Sie versuchen, eine Verbindung mit Ihrer Instance mithilfe eines Schlüssels herzustellen, der vom Server nicht erkannt wird:
open/ANT/myusername/.ssh/known_hosts). debug2: bits set: 504/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: boguspem.pem ((nil)) debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: boguspem.pem debug1: read PEM private key done: type RSA debug3: sign_and_send_pubkey: RSA 9c:4c:bc:0c:d0:5c:c7:92:6c:8e:9b:16:e4:43:d8:b2 debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey).
Bei Verwendung von PuTTY zum Verbinden mit Ihrer Instance
-
Überprüfen Sie, dass Ihre private Schlüsseldatei (PEM) in das Format konvertiert wurde, das von PuTTY (PPK) erkannt wird. Weitere Informationen zum Konvertieren Ihres privaten Schlüssels finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance über Windows mit PuTTY.
Anmerkung
Laden Sie Ihren privaten Schlüssel in PuTTYgen und wählen Sie Save Private Key (Privaten Schlüssel speichern) statt Generate (Generieren) aus.
-
Überprüfen Sie, dass Sie eine Verbindung mit dem entsprechenden Benutzernamen für Ihr AMI herstellen. Geben Sie den Benutzernamen im Feld Host name (Hostname) des Fensters PuTTY Configuration (PuTTY-Konfiguration) ein.
Zum Starten der Instance verwendetes AMI Standardbenutzername Amazon Linux 2023
Amazon Linux 2
Amazon Linux
ec2-user
CentOS centos
oderec2-user
Debian admin
Fedora fedora
oderec2-user
RHEL ec2-user
oderroot
SUSE ec2-user
oderroot
Ubuntu ubuntu
Oracle ec2-user
Bitnami bitnami
Sonstige Wenden Sie sich an den AMI-Anbieter -
Überprüfen Sie, dass eine eingehende Sicherheitsgruppenregel vorhanden ist, um den eingehenden Datenverkehr am entsprechenden Port zuzulassen. Weitere Informationen finden Sie unter Authorizing Network Access to Your Instances.
Fehler: Berechtigung verweigert oder Verbindung durch [instance] Port 22 geschlossen
Wenn Sie beim Herstellen einer Verbindung mit Ihrer Instance über SSH den Fehler Host key not found in [directory]
, Permission denied (publickey)
, Authentication failed, permission denied
oder Connection closed by [instance] port 22
erhalten, stellen Sie sicher, dass Sie die Verbindung mit dem entsprechenden Benutzernamen für Ihr AMI herstellen und dass Sie den richtigen privaten Schlüssel (.pem)
-Datei) für Ihre Instance angegeben haben.
Die entsprechenden Benutzernamen lauten wie folgt:
Zum Starten der Instance verwendetes AMI | Standardbenutzername |
---|---|
Amazon Linux 2023 Amazon Linux 2 Amazon Linux |
ec2-user
|
CentOS | centos oder ec2-user |
Debian | admin |
Fedora | fedora oder ec2-user |
RHEL | ec2-user oder root |
SUSE | ec2-user oder root |
Ubuntu | ubuntu |
Oracle | ec2-user |
Bitnami | bitnami |
Sonstige | Wenden Sie sich an den AMI-Anbieter |
Um beispielsweise einen SSH-Client für die Verbindung mit einer Amazon Linux-Instance zu verwenden, verwenden Sie den folgenden Befehl:
ssh -i
/path/key-pair-name
.peminstance-user-name
@ec2-203-0-113-25.compute-1.amazonaws.com
Vergewissern Sie sich, dass Sie den privaten Schlüssel verwenden, der dem Schlüsselpaar entspricht, das Sie beim Starten der Instance angegeben haben.
Wenn Sie ein eigenes Schlüsselpaar generiert haben, stellen Sie sicher, dass Ihr Schlüsselgenerator für das Erstellen von RSA-Schlüssel eingerichtet ist. DSA-Schlüssel werden nicht akzeptiert.
Wenn Sie einen Permission denied (publickey)
-Fehler erhalten und keiner der oben angegebenen Fälle zutrifft (z. B. wenn Sie zuvor eine Verbindung herstellen konnten), wurden die Berechtigungen für das Stammverzeichnis Ihrer Instance möglicherweise geändert. Berechtigungen für /home/
müssen auf den Eigentümer beschränkt sein.instance-user-name
/.ssh/authorized_keys
So überprüfen Sie die Berechtigungen für Ihre Instance
-
Beenden Sie Ihre Instance und trennen Sie das Stamm-Volume von der Instance. Weitere Informationen finden Sie unter Anhalten und Starten Ihrer Instance und Trennen eines Amazon EBS-Volumes von einer Linux-Instance.
-
Starten Sie eine temporäre Instance in derselben Availability Zone wie Ihre aktuelle Instance (verwenden Sie ein ähnliches oder dasselbe AMI wie für die aktuelle Instance) und fügen Sie der temporären Instance das Stamm-Volume an. Weitere Informationen finden Sie unter Zuordnen eines Amazon EBS-Volumes zu einer Instance.
-
Stellen Sie eine Verbindung mit der temporären Instance her, erstellen Sie einen Mountingpunkt und mounten Sie das angefügte Volume. Weitere Informationen finden Sie unter Bereitstellen eines Amazon EBS-Volumes zur Verwendung in Linux.
-
Überprüfen Sie über die temporäre Instance die Berechtigungen des Verzeichnisses
/home/
des angefügten Volumes. Passen Sie die Berechtigungen bei Bedarf wie folgt an:instance-user-name
/[ec2-user ~]$
chmod 600
mount_point
/home/instance-user-name
/.ssh/authorized_keys[ec2-user ~]$
chmod 700
mount_point
/home/instance-user-name
/.ssh[ec2-user ~]$
chmod 700
mount_point
/home/instance-user-name
-
Heben Sie die Bereitstellung des Volumes auf, trennen Sie es von der temporären Instance und fügen Sie es der ursprünglichen Instance wieder an. Stellen Sie sicher, dass Sie den richtigen Gerätenamen für das Stamm-Volume verwenden; z. B,
/dev/xvda
. -
Starten Sie Ihre Instance. Sie können die temporäre Instance beenden, wenn Sie sie nicht mehr benötigen.
Fehler: Ungeschützte private Schlüsseldatei
Ihre private Schlüsseldatei muss vor Lese- und Schreibvorgängen anderer Benutzer geschützt sein. Wenn Ihr privater Schlüssel nur von anderen, aber nicht von Ihnen gelesen oder geschrieben werden kann, ignoriert SSH Ihren Schlüssel und Sie erhalten die folgende Warnmeldung.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777
for '.ssh/my_private_key.pem
' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/my_private_key.pem
Permission denied (publickey).
Wenn Sie beim Anmelden bei Ihrer Instance eine ähnliche Meldung erhalten, sehen Sie sich die erste Zeile der Fehlermeldung an, um zu überprüfen, ob Sie den richtigen öffentlichen Schlüssel für Ihre Instance verwenden. Das obige Beispiel verwendet den privaten Schlüssel .ssh/my_private_key.pem
mit Dateiberechtigungen 0777
, die zulassen, das jeder Benutzer diese Datei lesen oder beschreiben kann. Da diese Berechtigungsebene sehr unsicher ist, wird dieser Schlüssel von SSH ignoriert.
Wenn Sie eine Verbindung über macOS oder Linux herstellen, führen Sie den folgenden Befehl aus, um diesen Fehler zu beheben, und ersetzen Sie dabei den Pfad durch Ihre private Schlüsseldatei.
[ec2-user ~]$
chmod 0400
.ssh/my_private_key.pem
Wenn Sie die Verbindung unter Windows herstellen möchten, führen Sie die folgenden Schritte auf dem lokalen Computer aus.
Navigieren Sie zu Ihrer PEM-Datei.
Klicken Sie mit der rechten Maustaste auf die PEM-Datei und wählen Sie Eigenschaften aus.
Wählen Sie die Registerkarte Sicherheit aus.
Klicken Sie auf Erweitert.
Stellen Sie sicher, dass Sie der Besitzer der Datei sind. Wenn nicht, ändern Sie den Besitzer in Ihren Benutzernamen.
Wählen Sie Vererbung deaktivieren und Alle vererbten Berechtigungen aus diesem Objekt entfernen aus.
Wählen Sie Hinzufügen und Prinzipal auswählen aus, geben Sie Ihren Benutzernamen ein und klicken Sie auf OK.
Erteilen Sie im Fenster Berechtigungseintrag die Berechtigungen zum Lesen und klicken Sie auf OK.
-
Klicken auf Apply (Anwenden), damit alle Einstellungen gespeichert werden.
Klicken Sie auf OK, um das Fenster Erweiterte Sicherheitseinstellungen zu schließen.
Klicken Sie auf OK, um das Fenster Eigenschaften zu schließen.
Sie sollten in der Lage sein, per SSH eine Verbindung aus Windows mit Ihrer Linux-Instance herzustellen.
Führen Sie in einer Windows-Eingabeaufforderung die folgenden Befehle aus:
Navigieren Sie von der Eingabeaufforderung zum Dateipfad Ihrer PEM-Datei.
Führen Sie den folgenden Befehl aus, um explizite Berechtigungen zurückzusetzen und zu entfernen:
icacls.exe
$path
/resetFühren Sie den folgenden Befehl aus, um dem aktuellen Benutzer Leseberechtigungen zu erteilen:
icacls.exe
$path
/GRANT:R "$($env:USERNAME):(R)
"Führen Sie den folgenden Befehl aus, um die Vererbung zu deaktivieren und geerbte Berechtigungen zu entfernen.
icacls.exe
$path
/inheritance:rSie sollten in der Lage sein, per SSH eine Verbindung aus Windows mit Ihrer Linux-Instance herzustellen.
Fehler: Der private Schlüssel muss mit „-----BEGIN RSA PRIVATE KEY-----“ und mit „-----END RSA PRIVATE KEY-----“ enden
Wenn Sie ein Tools von Drittanbietern, wie ssh-keygen, zum Erstellen eines RSA-Schlüsselpaars verwenden, generiert es den privaten Schlüssel im Format für OpenSSH-Schlüssel. Wenn Sie eine Verbindung zu Ihrer Instance herstellen und den privaten Schlüssel im OpenSSH-Format verwenden, um das Passwort zu entschlüsseln, erhalten Sie folgenden Fehler: Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA
PRIVATE KEY-----"
.
Der private Schlüssel muss im PEM-Format vorliegen, damit dieser Fehler nicht auftritt. Verwenden Sie folgenden Befehl, um den privaten Schlüssel im PEM-Format zu erstellen:
ssh-keygen -m PEM
Fehler: Der Server lehnte unseren Schlüssel ab oder es sind keine unterstützten Authentifizierungsmethoden verfügbar.
Wenn Sie die Verbindung mit Ihrer Instance über PuTTY herstellen und einen der folgenden Fehler, Error: Server refused our key (Fehler: Server hat unseren Schlüssel abgelehnt)
oder Error: No supported authentification methods available (Fehler: Keine unterstützten Authentifizierungsservices verfügbar)
, erhalten, überprüfen Sie, ob Sie die Verbindung mit dem korrekten Benutzernamen für Ihr AMI herstellen. Geben Sie den Benutzernamen im Feld User name (Benutzername) des Fensters PuTTY Configuration (PuTTY-Konfiguration) ein.
Die entsprechenden Benutzernamen lauten wie folgt:
Zum Starten der Instance verwendetes AMI | Standardbenutzername |
---|---|
Amazon Linux 2023 Amazon Linux 2 Amazon Linux |
ec2-user
|
CentOS | centos oder ec2-user |
Debian | admin |
Fedora | fedora oder ec2-user |
RHEL | ec2-user oder root |
SUSE | ec2-user oder root |
Ubuntu | ubuntu |
Oracle | ec2-user |
Bitnami | bitnami |
Sonstige | Wenden Sie sich an den AMI-Anbieter |
Sie sollten auch Folgendes überprüfen:
-
Verwenden Sie die neueste Version von PuTTY? Weitere Informationen finden Sie auf der PuTTY-Webseite
. -
Ihre private Schlüsseldatei (PEM) wurde korrekt in das Format konvertiert, das von PuTTY (.ppk) erkannt wird. Weitere Informationen zum Konvertieren Ihres privaten Schlüssels finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance über Windows mit PuTTY.
Die Instance ist nicht per Ping erreichbar.
Der ping
-Befehl ist eine Art ICMP—Datenverkehr. Wenn Sie Ihre Instance per Ping nicht erreichen können, stellen Sie sicher, dass Ihre eingehenden Sicherheitsgruppenregeln ICMP-Datenverkehr für die Echo Request
-Meldung von allen Quellen oder vom Computer bzw. von der Instance zulassen, auf dem bzw. der Sie den Befehl ausgeben.
Wenn Sie keinen ping
-Befehl auf Ihrer Instance ausgeben können, stellen Sie sicher, dass Ihre ausgehenden Sicherheitsgruppenregeln ICMP-Datenverkehr für die Echo
Request
-Meldung an alle Ziele oder an den Host, den Sie per Ping zu erreichen versuchen, zulassen.
Ping
-Befehle können aufgrund von Netzwerklatenz oder Hardwareproblemen auch von einer Firewall blockiert werden oder es kann zu einer Zeitüberschreitung kommen. Wenden Sie sich an Ihren lokalen Netzwerk- oder Systemadministrator, um Hilfe bei der weiteren Fehlerbehebung zu erhalten.
Fehler: Der Server hat die Netzwerkverbindung unerwartet geschlossen
Wenn Sie mit Ihrer Instance mit PuTTY verbunden sind und den Fehler "Server unexpectedly closed network connection (Der Server hat die Netzwerkverbindung unerwartet geschlossen)" erhalten, vergewissern Sie sich, dass Sie Keepalives auf der Verbindungsseite der PuTTY-Konfiguration aktiviert haben, um eine Trennung der Verbindung zu vermeiden. Einige Server trennen die Verbindung von Clients, wenn sie innerhalb des angegebenen Zeitraums keine Daten empfangen. Legen Sie als Anzahl der Sekunden zwischen Keepalives 59 Sekunden fest.
Wenn nach dem Aktivieren von Keepalives weiterhin Probleme auftreten, versuchen Sie, den Nagle-Algorithmus auf der Verbindungsseite der PuTTY-Konfiguration zu deaktivieren.
Fehler: Hostschlüssel-Validierung fehlgeschlagen für EC2 Instance Connect
Wenn Sie Ihre Instance-Hostschlüssel rotieren, werden die neuen Hostschlüssel nicht automatisch in die Datenbank mit vertrauenswürdigen Hostschlüsseln von AWS hochgeladen. Dies führt dazu, dass die Hostschlüssel-Validierung fehlschlägt, wenn Sie versuchen, eine Verbindung zu Ihrer Instance über den browserbasierten Client EC2 Instance Connect herzustellen, und Sie keine Verbindung mit Ihrer Instance herstellen können.
Um den Fehler zu beheben, müssen Sie das eic_harvest_hostkeys
-Skript auf Ihrer Instance ausführen, das Ihren neuen Hostschlüssel in EC2 Instance Connect hochlädt. Das Skript befindet sich bei /opt/aws/bin/
auf Amazon Linux 2-Instances und bei /usr/share/ec2-instance-connect/
auf Ubuntu-Instances.
Mit EC2 Instance Connect kann keine Verbindung zur Ubuntu-Instance hergestellt werden
Wenn Sie EC2 Instance Connect verwenden, um eine Verbindung zu Ihrer Ubuntu-Instance herzustellen und beim Verbindungsversuch eine Fehlermeldung angezeigt wird, können Sie die folgenden Informationen verwenden, um das Problem zu beheben.
Mögliche Ursache
Das ec2-instance-connect
-Paket auf der Instance ist nicht die neueste Version.
Lösung
Aktualisieren Sie das ec2-instance-connect
-Paket auf der Instance wie folgt auf die neueste Version:
-
Stellen Sie eine Verbindung mit einer anderen Methode als EC2 Instance Connect mit Ihrer Instance her.
-
Führen Sie den folgenden Befehl auf Ihrer Instance aus, um das
ec2-instance-connect
-Paket auf die neueste Version zu aktualisieren.apt update && apt upgrade
Ich habe meinen privaten Schlüssel verloren. Wie kann ich mich mit meiner Linux-Instance verbinden?
Falls Sie den privaten Schlüssel für eine per EBS abgesicherte Instance verlieren, können Sie den Zugriff auf Ihre Instance zurückerlangen. Sie müssen die Instance anhalten, das Stamm-Volume trennen, es einer anderen Instance als Daten-Volume anfügen, die Datei authorized_keys
mit einem neuen öffentlichen Schlüssel modifizieren, das Volume zurück zur ursprünglichen Instance verschieben und die Instance neu starten. Weitere Informationen zum Starten, Herstellen von Verbindungen und Anhalten von Instances finden Sie im Abschnitt Instance-Lebenszyklus.
Dieses Verfahren wird nur für Instance mit EBS-Stamm-Volumes unterstützt. Wenn es sich beim Stammgerät um ein Instance-Speicher-Volume handelt, können Sie dieses Verfahren nicht verwenden, um den Zugriff auf Ihre Instance wiederherzustellen. Sie benötigen den privaten Schlüssel, um eine Verbindung mit der Instance herzustellen. Zur Feststellung des Root-Gerätetyps Ihrer Instance öffnen Sie die Amazon-EC2-Konsole, wählen Sie Instances, wählen Sie die Instance aus, wählen Sie die Registerkarte Speicher und überprüfen Sie im Abschnitt Root-Gerätedetails den Wert des Root-Gerätetyps.
Der Wert ist entweder EBS
oder INSTANCE-STORE
.
Wenn Sie Ihren privaten Schlüssel verlieren, gibt es weitere Möglichkeiten, eine Verbindung mit Ihrer Linux-Instance herzustellen. Weitere Informationen finden Sie unter Wie kann ich eine Verbindung zu meiner Amazon EC2 Instance herstellen, wenn ich mein SSH-Schlüsselpaar nach dem ersten Start verloren habe?
Schritte für die Herstellung einer Verbindung zu einer EBS-gestützten Instance mittels eines anderen Schlüsselpaars
- Schritt 1: Erstellen eines neuen Schlüsselpaars
- Schritt 2: Abrufen von Informationen über die ursprüngliche Instance und ihr Stamm-Volume
- Schritt 3: Anhalten der ursprünglichen Instance
- Schritt 4: Starten einer temporären Instance
- Schritt 5: Trennen des Stamm-Volumes von der ursprünglichen Instance und Anfügen an die temporäre Instance
- Schritt 6: Hinzufügen des neuen öffentlichen Schlüssels zu authorized_keys auf dem ursprünglichen Volume, das auf der temporären Instance gemountet wird
- Schritt 7: Aufheben der Bereitstellung und Trennen des ursprünglichen Volumes von der temporären Instance und erneutes Anfügen an die ursprüngliche Instance
- Schritt 8: Verbinden Sie sich mit der ursprünglichen Instance mit dem neuen Schlüsselpaar
- Schritt 9: Bereinigen
Schritt 1: Erstellen eines neuen Schlüsselpaars
Erstellen Sie ein neues Schlüsselpaar mit der Amazon EC2-Konsole oder einem Tool eines Drittanbieters. Falls der Name des neuen Schlüsselpaares dem des verlorenen privaten Schlüssels genau entsprechen soll, müssen Sie das vorhandene Schlüsselpaar erst löschen. Weitere Informationen zum Erstellen eines neuen Schlüsselpaars finden Sie unter Erstellen eines Schlüsselpaars mit Amazon EC2 oder Erstellen Sie ein Schlüsselpaar mit einem Drittanbieter-Tool und importieren Sie den öffentlichen Schlüssel in Amazon EC2.
Schritt 2: Abrufen von Informationen über die ursprüngliche Instance und ihr Stamm-Volume
Notieren Sie sich die folgenden Informationen, da Sie sie benötigen werden, um dieses Verfahren abzuschließen.
So erhalten Sie Informationen zu Ihrer ursprünglichen Instance
-
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances und dann die Instance aus, zu der Sie eine Verbindung herstellen möchten. (Wir bezeichnen diese als ursprüngliche Instance.)
-
Notieren Sie sich auf der Registerkarte Details die Instance-ID und die AMI-ID.
-
Notieren Sie sich auf der Registerkarte Network (Netzwerk) die Availability Zone.
-
Notieren Sie sich auf der Registerkarte Storage (Speicher) den Gerätenamen für das Root-Volume unter Root device name (Root-Gerätename) (z. B.
/dev/xvda
). Suchen Sie diesen Gerätenamen unter Block devices (Geräte blockieren) und notieren Sie sich die Volume-ID (z. B. vol-0a1234b5678c910de).
Schritt 3: Anhalten der ursprünglichen Instance
Wählen Sie Instance state (Instance-Status), Stop instance (Instance anhalten). Wenn diese Option deaktiviert ist, wurde die Instance entweder bereits angehalten oder das Root-Gerät ist ein Instance-Speicher-Volume.
Warnung
Wenn Sie eine Instance anhalten, werden sämtliche Daten auf allen Instance-Speicher-Volumes gelöscht. Wenn Sie Daten von Instance-Speicher-Volumes behalten möchten, sichern Sie diese auf einem persistenten Speicher.
Schritt 4: Starten einer temporären Instance
Schritt 5: Trennen des Stamm-Volumes von der ursprünglichen Instance und Anfügen an die temporäre Instance
-
Wählen Sie im Navigationsbereich Volumes und wählen Sie das Root-Geräte-Volume für die ursprüngliche Instance aus (Sie haben die Volume-ID in einem früheren Schritt notiert). Wählen Sie Actions (Aktionen) und danach Detach volume (Volume trennen) aus, gefolgt von Detach (Trennen). Warten Sie, bis der Status des Volumes
available
wird. (Sie müssen möglicherweise das Symbol Refresh (Aktualisieren) wählen.) -
Wählen Sie bei ausgewähltem Volume Actions (Aktionen) und wählen Sie dann Attach Volume (Volume anfügen) aus. Wählen Sie die Instance-ID der vorübergehenden Instance aus, notieren Sie den Gerätenamen unter Device name (Gerätenamen) (zum Beispiel
/dev/sdf
) und wählen Sie dann Attach volume (Volume anhängen) aus.Anmerkung
Falls Sie Ihre ursprüngliche Instance über eine AWS Marketplace-AMI gestartet haben und Ihr Volume AWS Marketplace-Codes enthält, müssen Sie zuerst die temporäre Instance anhalten, bevor Sie das Volume anfügen können.
Schritt 6: Hinzufügen des neuen öffentlichen Schlüssels zu authorized_keys
auf dem ursprünglichen Volume, das auf der temporären Instance gemountet wird
-
Stellen Sie eine Verbindung mit der temporären Instance her.
-
Mounten Sie in der temporären Instance das Volume, das Sie an die Instance angefügt haben, damit Sie auf ihr Dateisystem zugreifen können. Beispiel: Falls der Gerätename
/dev/sdf
lautet, verwenden Sie die folgenden Befehle zum Mounten des Volume als/mnt/tempvol
.Anmerkung
Der Gerätename wird auf Ihrer Instance möglicherweise anders angezeigt. Beispiel: Geräte, die als
/dev/sdf
gemountet wurden, werden auf der Instance möglicherweise als/dev/xvdf
angezeigt. Einige Versionen von Red Hat (oder Varianten wie CentOS) können den letzten Buchstaben möglicherweise noch um 4 Zeichen erhöhen, wobei/dev/sd
zuf
/dev/xvd
wird.k
-
Verwenden Sie den Befehl lsblk, um zu ermitteln, ob das Volume partitioniert ist.
[ec2-user ~]$
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 101G 0 disk └─xvdf1 202:81 0 101G 0 part xvdg 202:96 0 30G 0 disk
Im Beispiel oben sind
/dev/xvda
und/dev/xvdf
partitionierte Volumes und/dev/xvdg
nicht. Falls Ihr Volume partitioniert ist, mounten Sie die Partition (/dev/xvdf1)
anstelle des Rohdatenträgers (/dev/xvdf
) in den nächsten Schritten. -
Erstellen Sie ein temporäres Verzeichnis zum Mounten des Volumes.
[ec2-user ~]$
sudo mkdir /mnt/tempvol
-
Mounten Sie das Volume (oder die Partitionierung) am temporären Mount-Punkt mithilfe des Volume-Namens oder des Gerätenamens, den Sie vorher in Erfahrung gebracht haben. Der erforderliche Befehl hängt vom Dateisystem Ihres Betriebssystems ab. Beachten Sie, dass der Gerätename auf Ihrer Instance möglicherweise anders angezeigt wird. Weitere Informationen finden Sie in note in Schritt 6.
-
Amazon Linux, Ubuntu und Debian
[ec2-user ~]$
sudo mount /dev/
xvdf1
/mnt/tempvol -
Amazon Linux 2, CentOS, SUSE Linux 12 und RHEL 7.x
[ec2-user ~]$
sudo mount -o nouuid /dev/
xvdf1
/mnt/tempvol
-
Anmerkung
Wenn Sie einen Fehler erhalten, der besagt, dass das Dateisystem beschädigt ist, führen Sie den folgenden Befehl aus, um mit dem Dienstprogramm fsck das Dateisystem zu prüfen und mögliche Probleme zu beheben:
[ec2-user ~]$
sudo fsck /dev/
xvdf1
-
-
Verwenden Sie in der temporären Instance den folgenden Befehl, um
authorized_keys
mit dem neuen öffentlichen Schlüssel überauthorized_keys
für die temporäre Instance am gemounteten Volume zu aktualisieren.Wichtig
Die folgenden Beispiele verwenden den Amazon Linux-Benutzernamen
ec2-user
. Sie können ihn durch einen anderen Benutzernamen ersetzen, wie etwaubuntu
für Ubuntu-Instances.[ec2-user ~]$
cp .ssh/authorized_keys /mnt/tempvol/home/
ec2-user
/.ssh/authorized_keysFalls diese Kopie erfolgreich verlief, können Sie mit dem nächsten Schritt fortfahren.
(Optional) Falls Sie keine Berechtigung zum Bearbeiten von Dateien in
/mnt/tempvol
besitzen, müssen Sie die Datei mithilfe von sudo aktualisieren und dann die Berechtigungen für die Datei überprüfen, um zu gewährleisten, dass Sie sich an der ursprünglichen Instance anmelden können. Führen Sie den folgenden Befehl aus, um die Berechtigungen für die Datei zu prüfen.[ec2-user ~]$
sudo ls -l /mnt/tempvol/home/ec2-user/.ssh
total 4 -rw------- 1
222 500
398 Sep 13 22:54 authorized_keysIn dieser Beispielausgabe lautet die Benutzer-ID
222
und die Gruppen-ID500
. Verwenden Sie als Nächstes sudo, um den fehlgeschlagenen Kopierbefehl erneut auszuführen.[ec2-user ~]$
sudo cp .ssh/authorized_keys /mnt/tempvol/home/
ec2-user
/.ssh/authorized_keysFühren Sie den folgenden Befehl noch einmal aus, um zu ermitteln, ob sich die Berechtigungen geändert haben.
[ec2-user ~]$
sudo ls -l /mnt/tempvol/home/
ec2-user
/.sshFalls sich die Benutzer-ID und die Gruppen-ID geändert haben, verwenden Sie den folgenden Befehl, um sie wiederherzustellen.
[ec2-user ~]$
sudo chown
222:500
/mnt/tempvol/home/ec2-user
/.ssh/authorized_keys
Schritt 7: Aufheben der Bereitstellung und Trennen des ursprünglichen Volumes von der temporären Instance und erneutes Anfügen an die ursprüngliche Instance
-
Entfernen Sie in der temporären Instance das Volume, das Sie angefügt haben, damit Sie es wieder an der ursprünglichen Instance anhängen können. Verwenden Sie beispielsweise den folgenden Befehl, um die Bereitstellung des Volumes unter aufzuhebe
/mnt/tempvol
.[ec2-user ~]$
sudo umount /mnt/tempvol
-
Trennen Sie das Volume von der temporären Instance (Sie haben das Mounting der Bereitstellung im vorherigen Schritt aufgehoben): Wählen Sie in der Amazon EC2-Konsole im NavigationsbereichVolumes wählen sie das Stamm-Gerät-Volume für die ursprüngliche Instance (Sie haben die Volume-ID in einem vorherigen Schritt notiert) wählen Sie Actions (Aktionen), Detach volume (Volumen trennen) und dann Detach (Trennen) aus. Warten Sie, bis der Status des Volumes
available
wird. (Sie müssen möglicherweise das Symbol Refresh (Aktualisieren) wählen.) -
Erneutes Anfügen des Volume an die ursprüngliche Instance: Wählen Sie bei weiter ausgewähltem Volume Actions (Aktionen) die Option Attach Volume (Volume anfügen) aus. Wählen Sie die Instance-ID der ursprünglichen Instance aus, geben Sie den Gerätenamen an, den Sie zuvor in Schritt 2 für die ursprüngliche Stammgeräte-Anlage (
/dev/sda1
oder/dev/xvda
) notiert haben, und wählen Sie dann Attach volume (Volume anhängen) aus.Wichtig
Falls Sie nicht denselben Gerätenamen als ursprünglichen Anhang angeben, können Sie die ursprüngliche Instance nicht starten. Amazon EC2 erwartet den Root-Gerät-Datenträger unter
sda1
oder/dev/xvda
.
Schritt 8: Verbinden Sie sich mit der ursprünglichen Instance mit dem neuen Schlüsselpaar
Wählen Sie die ursprüngliche Instance und dann Instance state (Instance-Status), Start instance (Instance starten). Wenn die Instance den Status running
erhält, können Sie mit der Datei mit dem privaten Schlüssel für Ihr neues Schlüsselpaar eine Verbindung zu ihr herstellen.
Anmerkung
Falls sich der Name Ihres neuen Schlüsselpaars und der entsprechenden Datei mit dem privaten Schlüssel vom Namen des ursprünglichen Schlüsselpaars unterscheidet, müssen Sie den Namen der Datei mit dem neuen privaten Schlüssel angeben, wenn Sie eine Verbindung mit Ihrer Instance herstellen.
Schritt 9: Bereinigen
(Optional) Sie können die temporäre Instance beenden, falls Sie keine weitere Verwendung mehr dafür haben. Wählen Sie die temporäre Instance und dann Instance state (Instance-Status), Terminate instance (Instance beenden) aus.