Fehlerbehebung der SSH-Verbindung
Wenn Sie keine SSH-Verbindung zu einer Compute-Instanz herstellen können, prüfen Sie die folgenden Fehlermeldungen und Vorschläge zur Fehlerbehebung, um das Problem zu beheben.
Wenn Sie zum ersten Mal eine Instanz erstellen, beachten Sie in einem geführten Tutorial Folgendes:
Wenn Sie zum ersten Mal eine Instanz erstellen, wird empfohlen, zuerst ein virtuelles Cloud-Netzwerk (VCN) zu erstellen. Sie können den Workflow "VCN-Assistenten starten" verwenden und die Option "VCN mit Internetverbindung erstellen" auswählen. Der Workflow erstellt ein VCN, das automatisch ein öffentliches und ein privates Subnetz sowie alle erforderlichen Gateways und Routingregeln konfiguriert. Darüber hinaus bietet der Workflow eine Option zur Konfiguration von IPv6. Einzelheiten zum Ausführen des Workflows finden Sie unter Virtuelle Netzwerke - Schnellstart.
SSH-Fehler: Verbindung zu Host w.x.y.z Port 22: Timeout bei Vorgang
Der Fehler bedeutet, dass SSH keine Verbindung zum Host mit der angegebenen IP-Adresse herstellen kann. Prüfen Sie die folgenden Szenarios, um das Problem zu beheben.
Stellen Sie sicher, dass das System über Internetzugang verfügt
- Stellen Sie sicher, dass die Umgebung, die der SSH-Befehl ausführt, über Internetzugriff verfügt
-
- Windows: Öffnen Sie ein Befehls-Prompt-Fenster.
- MacOS/Linux: Öffnen Sie ein Terminalfenster.
- Pingen Sie einen bekannten Host wie google.com oder amazon.com.
- Wenn der Ping-Befehl erfolgreich war, fahren Sie mit der nächsten Option fort.
- Ping nicht erfolgreich
-
Ihre SSH-Umgebung hat möglicherweise keinen Zugriff auf das Internet. Wenn Sie sich bezüglich der Firewalleinstellungen Ihrer Organisation für den Internetzugriff nicht sicher sind, können Sie OCI Cloud Shell für SSH zur Instanz verwenden. Weitere Informationen finden Sie im Abschnitt zu OCI Cloud Shell auf dieser Seite.
- Proxyserver
- Wenn Ihre Organisation Proxyserver verwendet, um eine Verbindung zum Internet herzustellen, stellen Sie sicher, dass Ihre Proxyeinstellungen korrekt sind. Bitte konsultieren Sie die Proxy-Dokumentation Ihrer Organisation, da die Einstellungen abhängig von der Proxy-Konfiguration und dem verwendeten Betriebssystem variieren können.
OCI-Einstellungen prüfen
Prüfen Sie als Nächstes die OCI-Einstellungen, um Ihre Konfiguration zu prüfen.
- Instanzdetails öffnen
-
- Melden Sie sich bei der OCI-Konsole an.
- Rufen Sie das Navigationsmenü auf, und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
- Wählen Sie die gewünschte Instanz aus. Die Seite mit den Instanzdetails wird angezeigt.
- Prüfen Sie die folgenden Einstellungen
-
- Stellen Sie sicher, dass die Instanz ausgeführt wird und nicht gestoppt ist.
- Stellen Sie sicher, dass die Instanz eine öffentliche IP-Adresse hat.
- Sehen Sie sich den Abschnitt Instanzzugriff an. Wenn eine öffentliche IP-Adresse zugewiesen ist, erhält die Adresse eine Bezeichnung: IP-Adresse für öffentlichen Zugriff:
- Wenn der Abschnitt Instanzzugriff leer ist, wird keine öffentliche IP-Adresse zugewiesen.
- Wenn Sie eine öffentliche Adresse haben, stellen Sie sicher, dass Sie die richtige IP-Adresse in Ihrem SSH-Befehl verwenden.
- Wenn Sie keine öffentliche IP-Adresse haben, prüfen Sie das VCN-Subnetz.
- Wenn Sie sich in einem privaten Subnetz befinden, können Sie über das Internet keine Verbindung zu Ihrer Instanz herstellen. Weitere Informationen finden Sie im Abschnitt Privates Subnetz verwenden.
- Wenn Sie eine Instanz in einem öffentlichen Subnetz erstellt, aber beim Erstellen der Instanz keine öffentliche IP-Adresse zugewiesen haben, können Sie die Adresse weiterhin zuweisen. Informationen hierzu finden Sie unter Ephemere öffentliche IP einer vorhandenen primären privaten IP zuweisen.
- Nachdem Sie die IP-Adresse festgelegt haben, starten Sie die Instanz neu, und versuchen Sie, eine SSH-Verbindung zur Instanz herzustellen.
Die Instanz hat eine öffentliche IP-Adresse in einem öffentlichen Subnetz, und ich kann immer noch keine Verbindung herstellen
Wenn Sie neu bei OCI sind, sind die folgenden Schritte zur Fehlerbehebung weiter fortgeschritten. Um die Vorgänge zu beschleunigen, sollten Sie ein neues VCN und eine neue Compute-Instanz einrichten, wie in den folgenden Tipps beschrieben.
Wenn Sie zum ersten Mal eine Instanz erstellen, beachten Sie in einem geführten Tutorial Folgendes:
Wenn Sie zum ersten Mal eine Instanz erstellen, wird empfohlen, zuerst ein virtuelles Cloud-Netzwerk (VCN) zu erstellen. Sie können den Workflow "VCN-Assistenten starten" verwenden und die Option "VCN mit Internetverbindung erstellen" auswählen. Der Workflow erstellt ein VCN, das automatisch ein öffentliches und ein privates Subnetz sowie alle erforderlichen Gateways und Routingregeln konfiguriert. Darüber hinaus bietet der Workflow eine Option zur Konfiguration von IPv6. Einzelheiten zum Ausführen des Workflows finden Sie unter Virtuelle Netzwerke - Schnellstart.
- Instanzdetails öffnen
-
- Melden Sie sich bei der OCI-Konsole an.
- Rufen Sie das Navigationsmenü auf, und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
- Wählen Sie die gewünschte Instanz aus. Die Seite mit den Instanzdetails wird angezeigt.
- VCN-Konfiguration prüfen
-
- Klicken Sie auf das VCN, das dieser Instanz zugewiesen ist.
- Stellen Sie sicher, dass mindestens ein Internetgateway in der Internetgateways-Ressource verfügbar ist.
- Wenn kein Internetgateway zugewiesen ist, gehen Sie zum nächsten Abschnitt.
- Wenn ein Internetgateway zugewiesen ist, stellen Sie sicher, dass dem öffentlichen Subnetz eine Routingregel für das Gateway zugewiesen ist.
- Wählen Sie unter der Ressource Subnetze das öffentliche Subnetz aus.
- Klicken Sie unter Subnetzinformationen auf den Link Routentabelle.
- Stellen Sie sicher, dass eine statische Route mit dem Ziel
0.0.0.0/0vorhanden ist. - Wenn der Routeneintrag fehlt, gehen Sie zum nächsten Abschnitt.
- Mein öffentliches Subnetz ist nicht ordnungsgemäß konfiguriert
-
Wenn Ihr öffentliches Subnetz anscheinend nicht ordnungsgemäß konfiguriert ist, haben Sie zwei Optionen, um Ihr Subnetz neu zu konfigurieren.
(1) Compute-Schnellaktion verwenden.
Auf der Seite mit den Instanzdetails:
- Wählen Sie in der Liste Ressourcen die Option Schnellaktionen aus.
- Klicken Sie auf Verbinden im Schnellvorgang Öffentliches Subnetz mit Internet verbinden.
- Folgen Sie dem Workflow, um eine Verbindung zur Instanz herzustellen.
(2) Erstellen Sie manuell ein öffentliches Subnetz.
- Im Dokument Szenario A: Ein öffentliches Subnetz werden die Schritte zum Einrichten und Konfigurieren eines neuen öffentlichen Subnetzes beschrieben.
- Erstellen Sie eine neue Compute-Instanz im neuen öffentlichen Subnetz.
- Sicherheitslisten prüfen
-
Wenn weiterhin Probleme auftreten, stellen Sie sicher, dass Ihre Sicherheitslisten Traffic auf Port 22 zulassen. Weitere Informationen finden Sie unter Sicherheitslisten.
- Erweiterte Fehlerbehebung
-
Wenn Sie ein fortgeschrittener Benutzer sind, können Sie den Network Path Analyzer verwenden, um weitere Fehler in der Netzwerkverbindung zu beheben. Weitere Informationen finden Sie unter Network Path Analyzer.
SSH: Verbindung zu Host mit w.x.y.z-Port 22 herstellen: Verbindung abgelehnt
Diese Fehlermeldung wird verursacht, weil ein Host an der Zieladresse horcht, Sie jedoch keine Verbindung zu Port 22 herstellen können.
Prüfen Sie mit Netcat(nc), ob SSH ausgeführt wird
Linux oder MacOS
Führen Sie den folgenden Befehl in einem Terminalfenster aus:
nc <public ip> 22-
Wenn der Befehl eine Meldung wie die Folgende zurückgibt:
SSH-2.0-OpenSSH_9.4Sie haben sich erfolgreich bei der Instanz angemeldet, und SSH wurde geprüft. Überprüfen Sie die IP-Adresse in Ihrem SSH-Befehl, um sicherzustellen, dass sie korrekt ist.
Wenn der Befehl nichts zurückgibt:
- Prüfen Sie die öffentliche IP-Adresse auf der Detailseite der Instanz, um sicherzustellen, dass Sie die richtige Adresse verwenden.
- Überprüfen Sie die im Befehl verwendete IP-Adresse doppelt, um sicherzustellen, dass sie korrekt ist.
Ansonsten fahren Sie mit dem nächsten Abschnitt weiter.
Fenster
Führen Sie in einem PowerShell-Fenster den folgenden Befehl aus:
tnc <public ip> -p 22-
Wenn der Befehl eine Meldung wie die Folgende zurückgibt:
ComputerName : <public ip> RemoteAddress : <public ip> RemotePort : 22 InterfaceAlias : Ethernet SourceAddress : <source ip> TcpTestSucceeded : TrueSie haben sich erfolgreich bei der Instanz angemeldet, und SSH wurde geprüft. Überprüfen Sie die IP-Adresse im SSH-Befehl, um sicherzustellen, dass sie korrekt ist.
- Wenn der Befehl Folgendes zurückgibt:
WARNING: TCP connect to (<public ip>) failed- Prüfen Sie die öffentliche IP-Adresse auf der Detailseite der Instanz, um sicherzustellen, dass Sie die richtige Adresse verwenden.
- Überprüfen Sie die im Befehl verwendete IP-Adresse doppelt, um sicherzustellen, dass sie korrekt ist.
Andernfalls fahren Sie mit der Fehlerbehebung im nächsten Abschnitt fort.
SSH wird nicht ausgeführt
- Prüfen Sie, ob sich die Instanz in einem öffentlichen Subnetz befindet.
- Wenn sich die Instanz in einem privaten Subnetz befindet, können Sie keine direkte Verbindung zur Instanz herstellen. Weitere Informationen finden Sie im Abschnitt Privates Subnetz verwenden.
- Stellen Sie sicher, dass die Sicherheitslisten so konfiguriert sind, dass Verbindungen zu Port 22 zulässig sind. Weitere Informationen finden Sie unter Sicherheitslisten.
- Starten Sie die Instanz neu, um den SSH-Daemon neu zu starten.
- Erweitert: Wenn Sie ein benutzerdefiniertes Image verwenden und den SSH-Service starten oder installieren müssen, verwenden Sie die serielle Konsole, um eine Verbindung zur Instanz herzustellen.
<user-name>@w.x.y.z: Erlaubnis verweigert (publickey,gssapi-keyex,gssapi-with-mic)
Diese Fehlermeldung gibt an, dass SSH eine Verbindung zum SSH-Servicehost herstellt. Beim SSH-Befehl ist jedoch ein Problem aufgetreten.
Prüfen Sie die folgenden Probleme mit Ihrem SSH-Befehl
- Prüfen Sie alle Befehlszeilenoptionen für SSH doppelt. Jede falsche Option kann diese Fehlermeldung verursachen.
- Im Folgenden finden Sie ein Beispiel für einen korrekt formatierten SSH-Befehl für die Verbindung zu Oracle Linux.
ssh -i <my-private-key-file> opc@x.x.x.x
- Im Folgenden finden Sie ein Beispiel für einen korrekt formatierten SSH-Befehl für die Verbindung zu Oracle Linux.
- Stellen Sie sicher, dass Sie den richtigen Benutzernamen für die Instanz verwenden:
- Verwenden Sie für Oracle Linux oder andere Red Hat-kompatible OSes
opc. - Verwenden Sie für Ubuntu Linux
ubuntu.
- Verwenden Sie für Oracle Linux oder andere Red Hat-kompatible OSes
- Stellen Sie sicher, dass Sie den richtigen Private Key verwenden. Die falsche Private-Key-Datei zu verwenden, führt zu dieser Fehlermeldung.
- Stellen Sie sicher, dass Sie sich im Verzeichnis befinden, das den Schlüssel enthält.
- Stellen Sie alternativ sicher, dass der Pfad zum Private Key korrekt ist.
- Ich habe meinen privaten Schlüssel verloren.
- Erstellen Sie eine neue Instanz, und laden Sie die neuen öffentlichen und privaten Schlüssel herunter.
- Erstellen Sie einen neuen öffentlichen und privaten Schlüssel. Neue Instanz erstellen.
SSH-Anmeldung mit PuTTYgen-Schlüsseldateien abgelehnt: "Berechtigung verweigert (publickey,gssapi-keyex,gssapi-with-mic)"
Dies liegt daran, dass Linux-Instanzen OpenSSH-generierte SSH-Schlüssel unterstützen und von PuTTYgen generierte SSH-Schlüssel ein anderes Format verwenden.
SSH-Schlüsselformate zuordnen
Wenn Sie mit PuTTYgen generierte .ppk-Schlüssel verwenden, um sich mit dem SSH-Befehl OpenSSH bei einer Linux-Instanz anzumelden, verläuft die Verbindung nicht erfolgreich. Beispiel:
$ ssh -i deployment_key.txt opc@<IP_ADDRESS>
Enter passphrase for key 'deployment_key.txt':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Dieser Fehler tritt auf, weil Linux-Instanzen OpenSSH-generierte SSH-Schlüssel unterstützen und von PuTTYgen generierte SSH-Schlüssel ein anderes Format verwenden. Um dieses Problem zu beheben, konvertieren Sie die Schlüssel mit PuTTYgen in das Schlüsselformat OpenSSH. Anschließend können die Schlüssel mit dem SSH-Befehl für die Anmeldung bei einer Linux-Instanz verwendet werden.
- Wenn Sie nicht über PuTTYgen verfügen, laden Sie es von https://www.puttygen.com/ herunter, und installieren Sie es.
- Öffnen Sie PuTTYgen.
- Klicken Sie auf Datei und dann auf Private Key laden.
- Navigieren Sie zur Private-Key-Datei PuTTY (.ppk), und klicken Sie auf Öffnen.
- (Optional) Geben Sie eine Schlüssel-Passphrase ein.
- Klicken Sie auf Konvertierungen und dann auf OpenSSH-Schlüssel exportieren.
Wenn Sie nicht als Passphrase verwendet haben, klicken Sie in PuTTYgen Warning auf Yes, um fortzufahren.
- Geben Sie im Fenster Private Key speichern unter: einen Dateinamen für den konvertierten Schlüssel ein, und klicken Sie auf Speichern.
Sie können sich jetzt mit dem konvertierten Schlüssel bei Ihrer Linux-Instanz anmelden.
SSH mit Fehler nicht erfolgreich: "Authentifizierung abgelehnt: Fehlerhafte Eigentümerrechte oder Modi für Verzeichnis "
Dieser Fehler tritt auf, weil falsche Berechtigungen für das Verzeichnis /home/<USERNAME> oder die Datei .ssh/authorized_keys festgelegt sind.
Die Beispielverzeichnispfade in diesem Tipp zur Fehlerbehebung verwenden Oracle Linux. Der Home-Pfad kann je nach Betriebssystem unterschiedlich sein. Beispiel: Der Home-Pfad in MacOS ist
/Users/<USERNAME>.Korrekte Berechtigungen festlegen
Wenn Sie falsche Berechtigungen für das Verzeichnis /home/<USERNAME> oder die Datei .ssh/authorized_keys festgelegt haben, kann die Verbindung zu einer Linux-Instanz mit SSH nicht erfolgreich sein.
Beispiel:
login as: <username>
Server refused our key
Wenn Sie die /var/log/secure-Logdateien auf der Linux-Instanz prüfen, wird der Grund für den Fehler angezeigt:
<SERVER> sshd[6245]: Authentication refused: bad ownership or modes for directory /home/<USERNAME>
Um den Fehler zu beheben, legen Sie die Berechtigungen für das Home-Verzeichnis oder die Datei .ssh/authorized_keys mit dem Befehl chmod fest:
# chmod 700 /home/<username>
# chmod 700 /home/<username>/.ssh/
# chmod 600 /home/username/.ssh/authorized_keys
Mit Cloud Shell eine Verbindung zu einer OCI-Instanz herstellen
OCI Cloud Shell ist ein browserbasiertes Terminal, das von der OCI-Konsole aus zugänglich ist. Cloud Shell kann (innerhalb monatlicher Mandantenlimits) kostenlos verwendet wird und ermöglicht den Zugriff auf eine Linux-Shell mit einer vorab authentifizierten OCI-CLI, einer vorab authentifizierten Ansible-Installation und anderen nützlichen Tools.
Wenn Sie Konnektivitätsprobleme mit Ihrer Instanz haben, ist Cloud Shell eine effektive Option für die Verbindung mit SSH. Da Cloud Shell browserbasiert ist, werden mögliche Konnektivitätsprobleme aufgrund von Laptop- oder Unternehmensfirewall-Einstellungen beseitigt. In diesem Abschnitt erhalten Sie einen Link zu den Informationen zur Verwendung von Cloud Shell.
-
Informationen zu Cloud Shell finden Sie unter Cloud Shell.
-
Informationen zum Zugriff auf Cloud Shell finden Sie unter Cloud Shell verwenden.
- Informationen zum Verbinden einer Cloud Shell-Session mit einem privaten Netzwerk finden Sie unter Privates Cloud Shell-Netzwerk.
Privates Subnetz verwenden
Wenn sich Ihre Compute-Instanz in einem privaten Subnetz befindet, gibt es im Allgemeinen zwei Szenarios.
- (1) Die Instanz befindet sich in einem privaten Subnetz, muss sich jedoch in einem öffentlichen Subnetz befinden
-
Um die Instanz in einem öffentlichen Subnetz zu haben, haben Sie die folgenden Optionen.
- Neue Instanz in einem öffentlichen Subnetz im aktuellen VCN erstellen. Beenden Sie die alte Instanz.
- Erstellen Sie ein neues öffentliches Subnetz im aktuellen VCN. Erstellen Sie eine neue Instanz im neuen öffentlichen Subnetz. Beenden Sie die alte Instanz.
- Erstellen Sie ein neues VCN mit einem öffentlichen Subnetz, und erstellen Sie dann eine neue Instanz im öffentlichen Subnetz. Beenden Sie die alte Instanz.
Tipp
Wenn Sie zum ersten Mal eine Instanz erstellen, beachten Sie in einem geführten Tutorial Folgendes:Tipp
Wenn Sie zum ersten Mal eine Instanz erstellen, wird empfohlen, zuerst ein virtuelles Cloud-Netzwerk (VCN) zu erstellen. Sie können den Workflow "VCN-Assistenten starten" verwenden und die Option "VCN mit Internetverbindung erstellen" auswählen. Der Workflow erstellt ein VCN, das automatisch ein öffentliches und ein privates Subnetz sowie alle erforderlichen Gateways und Routingregeln konfiguriert. Darüber hinaus bietet der Workflow eine Option zur Konfiguration von IPv6. Einzelheiten zum Ausführen des Workflows finden Sie unter Virtuelle Netzwerke - Schnellstart. - (2) Die Instanz befindet sich absichtlich in einem privaten Subnetz
-
Wenn sich die Compute-Instanz in einem privaten Subnetz befindet, können Sie eine Verbindung dazu herstellen mit:
- Cloud Shell: Weitere Informationen finden Sie im Abschnitt zu OCI Cloud Shell auf dieser Seite.
- Bastion bietet eingeschränkten und zeitlich begrenzten Zugriff auf Zielressourcen, die keine öffentlichen Endpunkte haben. Weitere Informationen finden Sie unter Bastionüberblick.
Zusätzliche Optionen zur Fehlersuche bei Verbindungen und Instanzen
Der Fokus dieser Seite liegt auf der Verwendung des SSH-Befehls, um eine Verbindung zu einer Instanz herzustellen. Im Folgenden finden Sie weitere Tools, mit denen Sie Compute-Instanzen beheben können.
Fehler der seriellen Konsole beheben
Mit einer OCI-Konsolenverbindung können Sie die serielle Konsole der Instanz verwenden, um eine Verbindung zur Instanz herzustellen. Auf diese Weise können Sie remote Fehler beheben und eine Instanz konfigurieren. Weitere Informationen finden Sie unter Fehlerbehebung bei Instanzen mit Instanzkonsolenverbindung.
- Brechen Sie den Boot-Prozess auf im Wartungsmodus booten ab.
- Im Wartungsmodus fügen Sie den SSH-Schlüssel für den
opc-Benutzer hinzu oder zurücksetzen.
Instanzzustand beobachten
Auf der Seite mit den Instanzdetails können Sie Metriken zur Instanz beobachten, einschließlich des Zustands der Instanz. Mit der Metrik oci_compute_instance_health können Sie überwachen, ob eine VM-Instanz nicht reagiert. Compute sendet eine Address Resolution Protocol-(ARP-)Anforderung an die virtuelle Netzwerkkarte (VNIC) der Instanz. Wenn der ARP-Ping nicht erfolgreich verläuft, zeigt die Metrik, dass die Instanz nicht reagiert.
Um die Metrik zu verwenden, wählen Sie auf der Detailseite im Steuerelement Metrik-Namespace die Option oci_compute_instance_health aus. Weitere Informationen finden Sie unter Compute-Instanzintegritätsmetriken.
Andere Abschnitte zur Fehlerbehebung bei Compute
Neben SSH stehen auch die folgenden Themen zur Fehlerbehebung zur Verfügung.