LinuxでSSH接続のタイムアウトを延長する方法
SSHのタイムアウトは非活動によって発生し、非常に苛立たしいことがあります。これにより、接続を再初期化して最初からやり直さなければならなくなります。
幸いなことに、SSHのタイムアウト制限を簡単に増やして、いくらかの非活動があってもSSHセッションを維持することができます。これは、サーバーまたはクライアントのいずれかが、セッションを維持するために他のシステムに無効パケットを送信することで発生します。
関連読む: OpenSSHサーバーを保護し、強化する方法
では、LinuxでSSH接続のタイムアウトを増やす方法を見てみましょう。
SSH接続タイムアウトの延長
サーバーで、/etc/ssh/sshd_config 設定ファイルに移動してください。
$ sudo vi /etc/ssh/sshd_config
スクロールして、次のパラメータを見つけてください:
#ClientAliveInterval
#ClientAliveCountMax
「ClientAliveInterval」パラメータは、サーバーがクライアントシステムに接続を維持するためにヌルパケットを送信する前に待機する時間(秒単位)を指定します。
一方、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のタイムアウト値を大きな値に設定することは常にお勧めできません。これは、長時間離れているときに誰かが通りかかってあなたのセッションをハイジャックするのを防ぐためです。そして、これがこのトピックのすべてです。
