Linux で SSH 接続のタイムアウトを増やす方法
非アクティブな状態の結果として SSH タイムアウトが発生すると、非常にイライラすることがあります。通常、これにより、接続を再開始し、最初からやり直す必要があります。
ありがたいことに、SSH タイムアウト制限を簡単に増やすことができ、非アクティブな状態が続いた後でも SSH セッションを維持できます。これは、サーバーまたはクライアントがセッションを維持するために他のシステムにヌル パケットを送信した場合に発生します。
関連記事: OpenSSH サーバーを保護して強化する方法
次に、Linux で SSH 接続のタイムアウトを増やす方法を見てみましょう。
SSH接続タイムアウトを増やす
サーバー上で、/etc/ssh/sshd_config
構成ファイルに移動します。
sudo vi /etc/ssh/sshd_config
スクロールして次のパラメータを見つけます。
#ClientAliveInterval
#ClientAliveCountMax
ClientAliveInterval
パラメータは、サーバーが接続を維持するためにクライアント システムに null パケットを送信するまで待機する時間を秒単位で指定します。
一方、ClientAliveCountMax
パラメータは、クライアントからメッセージを取得せずに送信されるクライアント アライブ メッセージの数を定義します。メッセージの送信中にこの制限に達すると、sshd デーモンがセッションをドロップし、実質的に ssh セッションを終了します。
タイムアウト値は、上記のパラメータの積によって与えられます。
Timeout value = ClientAliveInterval * ClientAliveCountMax
たとえば、次のようにパラメータを定義したとします。
ClientAliveInterval 1200
ClientAliveCountMax 3
タイムアウトの値は1200秒 * 3=3600 秒になります。これは1 時間に相当し、ssh セッションがアイドル時間の1 時間の間、切断されることなく存続することを意味します。
あるいは、ClientAliveInterval
パラメータのみを指定しても、同じ結果を得ることができます。
ClientAliveInterval 3600
完了したら、OpenSSH デーモンをリロードして変更を有効にします。
sudo systemctl reload sshd
結論
SSH セキュリティ対策として、SSH タイムアウト値を大きな値に設定しないことをお勧めします。これは、長時間不在のときに誰かが通りかかってセッションを乗っ取るのを防ぐためです。このトピックはここまでです。