it-swarm-ja.com

「接続が確立されました」の後にSSHがハングするとはどういう意味ですか?

私はGoogle Cloudを使用していますVMそして時々、ターミナルに切り替えて、sshセッションがフリーズしているのを確認します。その後、再接続しようとすると

ssh -v  -i ~/.ssh/key  [email protected]

それはこれを示しています:

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

そのため、接続が確立されているように見えますが、それ以外は何も起こらず、VMを再起動する必要があります。これは何を意味するのでしょうか?

私は問題なくホストをpingできるので、フリーズしたり何もしないことに注意してください。

9
oarfish
debug1: Local version string SSH-2.0-OpenSSH_7.4

クライアントがSSHサーバーに接続すると、サーバーはプレーンテキストのサーバーバージョン文字列をクライアントに送信してSSHプロトコルを開始します。 OpenSSH sshユーティリティを使用すると、関連するデバッグ行は次のようになります。

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

「ローカルバージョン」の行の後、クライアントはサーバーがバージョン文字列をクライアントに送信するのを待っています。ここで接続がハングした場合、クライアントがサーバーからバージョン文字列を受け取っていないことが原因です。

一般に、これにはいくつかの原因があります。

  1. クライアントがSSHサーバー以外の何かに接続しました。たとえば、HTTPプロトコルはクライアントが最初のデータを送信することを期待しているため、HTTPサーバーはクライアントに何も送信しません。
  2. サーバーが誤動作しています。たとえば、サーバーが過負荷になっている可能性があり、SSHサーバープロセスが実行される機会がありません。
  3. サーバーが何らかの理由でハングしています。たとえば、クライアントのIPアドレスでDNSクエリを実行するときにスタックする可能性があります。
  4. 一部のネットワークデバイスがTCP接続に干渉しています。

あなたのケースでは、ポート22に接続しているので、SSHサーバープロセスに接続していると想定しても安全です。 #2(サーバーが誤動作している)に苦しんでいるようですが、それ以上の問題点を正確に述べることはできません。サーバーにアクセスして、SSH接続の処理を妨げていた当時の状況を把握する必要があります。

8
Kenster