質問: 「接続が確立されました」の後にsshがハングするとはどういう意味ですか? 私はgoogle cloudを使用していますvmそして時々、ターミナルに切り替えて、sshセッションがフリーズしているのを確認します。その後、再接続しようとするとssh -v -i ~/.ssh/key user@host.domain それはこれを示しています: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できるので、フリーズしたり何もしないことに注意してください。
回答: 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 「ローカルバージョン」の行の後、クライアントはサーバーがバージョン文字列をクライアントに送信するのを待っています。ここで接続がハングした場合、クライアントがサーバーからバージョン文字列を受け取っていないことが原因です。一般に、これにはいくつかの原因があります。 クライアントがsshサーバー以外の何かに接続しました。たとえば、httpプロトコルはクライアントが最初のデータを送信することを期待しているため、httpサーバーはクライアントに何も送信しません。 サーバーが誤動作しています。たとえば、サーバーが過負荷になっている可能性があり、sshサーバープロセスが実行される機会がありません。 サーバーが何らかの理由でハングしています。たとえば、クライアントのipアドレスでdnsクエリを実行するときにスタックする可能性があります。 一部のネットワークデバイスがtcp接続に干渉しています。 あなたのケースでは、ポート22に接続しているので、sshサーバープロセスに接続していると想定しても安全です。 #2(サーバーが誤動作している)に苦しんでいるようですが、それ以上の問題点を正確に述べることはできません。サーバーにアクセスして、ssh接続の処理を妨げていた当時の状況を把握する必要があります。