Was bedeutet es, wenn SSH nach "Connection Established" hängt?

481
oarfish

Ich verwende eine Google Cloud-VM und wechsle gelegentlich zu meinem Terminal und sehe, dass meine SSH-Sitzung eingefroren ist. Wenn ich dann versuche, die Verbindung wieder herzustellen

ssh -v -i ~/.ssh/key user@host.domain 

Es zeigt das:

OpenSSH_7.4p1, LibreSSL 2.5.0 debug1: Reading configuration data /Users/UserName/.ssh/config debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 53: Applying options for * debug1: Connecting to host.domain [123.456.123.456] port 22. debug1: Connection established. debug1: identity file /Users/UserName/.ssh/ke> type 1 debug1: key_load_public: No such file or directory debug1: identity file /Users/UserName/.ssh/key-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.4 

Es scheint also, dass eine Verbindung hergestellt wurde, aber es passiert nichts anderes und ich muss die VM neu starten. Was bedeutet das?

Ich sollte beachten, dass ich pingden Host ohne Probleme kann, also ist er nicht eingefroren oder irgendetwas.

1
Erhöhen Sie die ausführlichen Ebenen, z. B. -vv oder sogar -vvv. Dies könnte uns weitere Informationen geben, die helfen können. hyph vor 6 Jahren 0
Ich habe auch `vvv` verwendet, bekam aber keine weitere Ausgabe. Ich lasse den Server für ein paar Stunden sein und kann mich jetzt wieder verbinden. Mal sehen, ob ich nächstes Mal mehr Informationen erhalten kann. oarfish vor 6 Jahren 0

1 Antwort auf die Frage

2
Kenster
debug1: Local version string SSH-2.0-OpenSSH_7.4 

Wenn ein Client eine Verbindung zu einem SSH-Server herstellt, startet der Server das SSH-Protokoll, indem er eine Server-Versionszeichenfolge im Nur-Text-Format an den Client sendet. Mit dem OpenSSH- sshDienstprogramm sehen die relevanten Debugzeilen folgendermaßen aus:

debug1: Local version string SSH-2.0-OpenSSH_7.6 debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6 

Nach der Zeile "lokale Version" wartet Ihr Client darauf, dass der Server seine Versionszeichenfolge an den Client sendet. Wenn die Verbindung hier hängt, liegt dies daran, dass der Client die Versionszeichenfolge nicht vom Server erhalten hat.

Im Allgemeinen gibt es mehrere Dinge, die dies verursachen könnten:

  1. Der Client hat eine Verbindung zu etwas hergestellt, bei dem es sich nicht um einen SSH-Server handelt. Ein HTTP-Server würde beispielsweise nichts an den Client senden, da das HTTP-Protokoll erwartet, dass der Client die ersten Daten sendet.
  2. Der Server funktioniert nicht richtig. Beispielsweise ist der Server möglicherweise überlastet, und der SSH-Serverprozess kann nicht ausgeführt werden.
  3. Der Server ist irgendwie aufgehängt. Es könnte beispielsweise steckenbleiben, dass eine DNS-Abfrage nach der IP-Adresse des Clients durchgeführt wird.
  4. Einige Netzwerkgeräte stören die TCP-Verbindung.

In Ihrem Fall stellen Sie eine Verbindung zu Port 22 her, Sie können also davon ausgehen, dass Sie eine Verbindung zu einem SSH-Serverprozess herstellen. Es scheint wahrscheinlich, dass Sie an # 2 leiden (der Server funktioniert nicht richtig), aber es ist nicht möglich, genau zu sagen, was darüber hinausgeht. Sie müssen in den Server einsteigen und herausfinden, was zu dem Zeitpunkt passiert ist, der die Verarbeitung von SSH-Verbindungen verhindert hat.

Gibt es Protokolldateien, auf die ich achten sollte, wenn ich wieder Zugriff habe? oarfish vor 6 Jahren 0