明確にするために:私は、ログイン後に一度開始し、その端末を使用して立ち去り、2 時間後に戻ってきて、立ち去る前に何も入力せずに作業を続けたいという解決策を探しています.
問題は、アイドル セッションをドロップしている何か (通常はファイアウォールまたはロード バランサー) があることです。セッション キープアライブを構成すると、キープアライブにより、ネットワーク デバイスがセッションをアイドル状態と見なすことがなくなります。
Linux / Unix / Cygwin OpenSSH の修正 :
最も簡単な修正は、ssh クライアントのキープアライブを有効にすることです。この例では、60 秒ごとに ssh キープアライブを送信します:
ssh -o "ServerAliveInterval 60" <SERVER_ADDRESS>
すべてのセッションでこれを有効にしたい場合は、これを /etc/ssh/ssh_config
に入れます または ~/.ssh/config
:
ServerAliveInterval 60
詳細については、ssh_config
を参照してください。 マンページ
パテ修正 :
これを PuTTY の「デフォルト設定」に保存します...
- [接続] をクリックします
- 「キープアライブ間の秒数」に 60 と入力
Mike Pennigton の回答に加えて、ServerAliveCountMax
についてお知らせします。
ServerAliveInterval
キープアライブを x 秒ごとに送信します (デフォルトは 0 です) 、他の何かに設定されていない場合、この機能を無効にします)。- これが行われます
ServerAliveCountMax
応答が受信されない場合。ServerAliveCountMax
のデフォルト値 3 です (マンページ ssh_config を参照)。
例:ServerAliveInterval
を設定した場合 60まで ServerAliveCountMax
のままにします そのまま、これはキープアライブが 3 * 60 = 180 seconds =
だけ待機することを意味します 3 やめる数分前。
これを例えば接続を維持しようと 2 時間かかる場合、できること:
コマンドごと:
したがって、
の設定を検討する必要があります。ssh -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" <SERVER_ADDRESS>
継続:
永続的にするには、/etc/ssh/ssh_config
に書き込みます (システム全体に適用されます) または ~/.ssh/config
(ユーザーのみに適用されます):
ServerAliveInterval 60
ServerAliveCountMax 120
注意
dislick が正しく指摘したように、状況によっては、これはあなたが望むものではないかもしれません:
- サーバーが応答しなくなったらすぐにセッションを終了したい場合は、
ServerAliveCountMax
に低い値を選択する必要があります。 . - すでに確立されている接続を維持したい場合 (例:電車で移動し、待ち時間が長い場合)、
ServerAliveCountMax
に高い値を選択する必要があります。ssh
を許可する 接続の再確立を試み続けます。
こちらもご覧ください:
- unix.stackexchange.com - OpenSSH のデフォルトのアイドル タイムアウトは?
私は Mobaxterm を使用していますが、この問題にも遭遇しました。 Mobaxterm には、クライアントがアイドル状態のときにクライアントを維持するオプションも付属しています。 Settings -> Configuration -> SSH
に移動 . SSH settings
というタイトルのセクションがあります 、オプション SSH keepalive
をチェックします .その後、問題は解消されます。