LinuxでSSH接続タイムアウトを増やす方法


非アクティブの結果としてのSSHタイムアウトは、非常に苛立たしいものになる可能性があります。これにより、通常、接続を再開して最初からやり直す必要があります。

ありがたいことに、SSHタイムアウト制限を簡単に増やして、非アクティブになった後でもSSHセッションを存続させることができます。これは、サーバーまたはクライアントのいずれかがセッションを存続させるために他のシステムにnullパケットを送信したときに発生します。

関連記事: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 u003d 3600秒になります。これは1時間に相当します。これは、sshセッションがドロップせずに1時間のアイドル時間の間存続することを意味します。

または、 ClientAliveInterval パラメーターのみを指定して同じ結果を得ることができます。

ClientAliveInterval  3600

完了したら、OpenSSHデーモンをリロードして、変更を有効にします。

$ sudo systemctl reload sshd

SSHのセキュリティ対策として、SSHタイムアウト値を大きな値に設定しないことを常にお勧めします。これは、長期間不在のときに誰かが通りかかってセッションを乗っ取るのを防ぐためです。このトピックは以上です。