コマンドラインで多くの時間を過ごすと、比較的短時間の不活動でセッションがタイムアウトするという厄介な問題に出くわしたことがあるかもしれません。 これはセキュリティの観点からは望ましいことですが、長時間実行する操作を実行しようとすると、問題を引き起こす可能性があります。
通常、しばらく何もしていないと、サーバーへの接続がリセットされ、通常エラーが発生します。 接続先によって接続がリセットされました。 これを回避するには、サーバーに Keep Alive オプションを設定する必要があります。
また、以下を参照してください。 LinuxでのOpenSSH-serverのインストールと設定
このガイドでは、LinuxでSSH接続のタイムアウトを防ぎ、いくつかの非アクティブの後でもSSHセッションを維持する方法について学びます。
Increase SSH Connection Timeout
On the server, head over the /etc/ssh/sshd_config
configuration file.
$ sudo vi /etc/ssh/sshd_config
Scroll and locate the following parameters:
#ClientAliveInterval #ClientAliveCountMax
Where,
-
ClientAliveInterval
: タイムアウト間隔を秒で設定し、クライアントからデータを受信しなかった場合、sshd はクライアントからの応答を要求するメッセージを暗号化チャネルを介して送信します。 既定値は 0 で、このメッセージはクライアントに送信されないことを意味します。 このオプションは、プロトコル バージョン 2 にのみ適用されます。 -
ClientAliveCountMax
: sshd がクライアントからのメッセージを受信せずに送信できる client alive メッセージの回数を設定します。
タイムアウト値は、上記のパラメータの積で指定されます。例えば、次のようにパラメータを定義したとします:
ClientAliveInterval 1200ClientAliveCountMax 3
タイムアウト値は 1200 seconds * 3 = 3600 seconds となります。 これは 1 時間に相当し、ssh セッションがアイドル時間である 1 時間、落ちないことを意味します。
あるいは、ClientAliveInterval パラメータのみを指定することで、同じ結果を達成できます。