Probleme beim Verbinden mit einer Session

Beheben Sie Probleme, die auftreten können, wenn Sie versuchen, eine Verbindung zu einer vorhandenen Session herzustellen.

Fügen Sie zur Fehlerbehebung bei SSH-Befehlen im Allgemeinen die Verbose-Option (-v) hinzu. Beispiel:

ssh -v -i <private_key> -N -L <local_port>:<target_IP>:<port> <bastion>
Hinweis

Verwenden Sie nicht die Option -vv oder -vvv.

Verbindung zu einer Session mit SSH und einem Public Key kann nicht hergestellt werden

Wenn Sie SSH und einen Public Key verwenden, um eine Verbindung zu einem verwalteten SSH oder einer Portweiterleitungssession (auch als SSH-Tunnel bezeichnet) herzustellen, verläuft die Verbindung nicht erfolgreich, und die folgende Meldung wird angezeigt:

Permission denied (publickey)

Um das Problem zu beheben, bearbeiten Sie die Datei ~/.ssh/config, und fügen Sie die folgenden Zeilen hinzu:

Host *
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa
Hinweis

Verwenden Sie * für den Host in der SSH-Konfigurationsdatei für den Zugriff auf den Bastionhost und den Zielhost. Alternativ können Sie host.bastion.*.oci.* und alle privaten IP-Adressen des Zielhosts zur SSH-Konfigurationsdatei hinzufügen.

Weitere Hilfe finden Sie unter Verbindung mit der Instanz herstellen.

IP-Adresse ist nicht in Ausnahmeliste der Bastion enthalten

Wenn Sie eine Bastion erstellen, geben Sie eine CIDR-Block-Ausnahmeliste an. Fügen Sie einen oder mehrere Adressbereiche in CIDR-Notation hinzu, von denen Sie Verbindungen zu von dieser Bastion gehosteten Sessions zulassen möchten.

Wenn die IP-Adresse des lokalen Rechners nicht in der Ausnahmeliste enthalten ist, verläuft der SSH-Befehl mit folgender Meldung nicht erfolgreich:

Enter passphrase for key 'id_rsa': <your_passphrase>
...
Connection to host.bastion.<region>.oci.oraclecloud.com closed by remote host.

Bearbeiten Sie die Bastion, und prüfen Sie, ob die IP-Adresse des lokalen Rechners in der CIDR-Block-Ausnahmeliste enthalten ist. Nach der Änderung der Ausnahmeliste müssen Sie auch eine neue Session erstellen. Diese Änderung wirkt sich nicht auf vorhandene Sessions aus.

VCN lässt Ingress-Traffic von Bastion nicht zu

Das VCN (virtuelle Cloud-Netzwerk)  und das Subnetz, in dem die Zielressource erstellt wurde, muss eingehenden Netzwerktraffic von der Bastion auf dem Zielport zulassen.

Wenn Sie versuchen, eine Verbindung mit einer verwalteten SSH-Session herzustellen, wird die Verbindung nach mehreren Minuten wegen Timeout abgebrochen, und folgende Meldung wird ausgegeben:

Enter passphrase for key 'id_rsa': <your_passphrase>
...
kex_exchange_identification: Connection closed by remote host

Bei einer Portweiterleitungssession verläuft die anfängliche SSH-Verbindung erfolgreich. Wenn Sie jedoch versuchen, den SSH-Tunnel zu verwenden, wird nach mehreren Minuten ein Timeout überschritten, und dieselbe Fehlermeldung wird ausgegeben.

For example, to use a session to connect to port 8001 on a compute instance  from a bastion with the IP address 192.168.0.99, then the subnet used to access the instance needs to allow ingress traffic from 192.168.0.99 on port 8001.

Die Standardsicherheitsliste für ein Subnetz lässt Ingress-Traffic zu SSH-Port 22 von jeder IP-Adresse zu. Diese Regel kann jedoch geändert oder gelöscht werden. Außerdem lässt die Standardsicherheitsliste für ein Subnetz in der Regel keinen Ingress-Traffic von einer IP-Adresse zu anderen Portnummern zu. Beispiele:

  • 1521: Oracle-Datenbank
  • 3306: MySQL Datenbank
  • 3389: Remote Desktop Protocol (RDP)

Aktualisieren Sie die Sicherheitsliste für das Zielsubnetz, und fügen Sie die IP-Adresse der Bastion hinzu. Siehe Netzwerkzugriff von der Bastion zulassen.

Befehl zur Portweiterleitung reagiert scheinbar nicht

Wenn Sie mit SSH eine Verbindung zu einer Portweiterleitungssession (auch als SSH-Tunnel bezeichnet) herstellen, wird der Prozess nach der Eingabe der Private-Key-Passphrase nicht beendet. Dieses Ergebnis ist normal. Schließen Sie das Terminal nicht.

Um zu prüfen, ob der SSH-Tunnel erfolgreich erstellt wurde, können Sie den SSH-Befehl mit einer Verbose-Ausgabe erneut ausführen. Die abschließenden Meldungen nach erfolgreicher Verbindung lauten:

debug1: Entering interactive session.
debug1: pledge: network

Verwenden Sie nach dem Erstellen des SSH-Tunnels eine entsprechende Anwendung, um eine Verbindung zur Zielressource mit dem lokalen Port herzustellen, den Sie im SSH-Befehl angegeben haben: localhost:local port oder 127.0.0.1:local port.

Beispiel: Um eine Portweiterleitungssession in einer Oracle Database zu verwenden, öffnen Sie Oracle SQL Developer, und stellen Sie eine Verbindung zu localhost:1521 her.

Weitere Beispiele finden Sie unter Verbindung zu Sessions in Bastion herstellen.

Inaktive Verbindung wird geschlossen

Standardmäßig schließt der SSH-Server inaktive Verbindungen nach 5 Minuten. Um zu verhindern, dass inaktive Verbindungen geschlossen werden, konfigurieren Sie den SSH-Client so, dass regelmäßig leere Pakete an den Server gesendet werden.

Beispiel: Erstellen oder bearbeiten Sie unter Linux die Datei ~/.ssh/config, und fügen Sie die folgenden Zeilen hinzu:

Host *
    ServerAliveInterval 120
    ServerAliveCountMax 3

In diesem Beispiel werden alle zwei Minuten (120 Sekunden) leere Pakete gesendet, und der Client führt maximal drei Versuche aus.