
私は CentOS サーバーを所有しており、Putty を使用して手動で、または Python Fabric モジュールを使用してプログラムで、Windows ラップトップから SSH 経由でアクセスしています。
一定期間操作が行われないと、接続が閉じられることがあります。
私の主な質問は、いつ/なぜですか? SSH 接続をいつ閉じるかを指定する設定はどこにありますか? 何も設定されていない場合のデフォルト値は何ですか? 接続が閉じられるロジックを理解したいだけです... 12 時間以上非アクティブでも接続が開いたままになる場合もあれば、約 30 分間非アクティブになると接続が閉じられる場合もあります。
2 番目の質問は、Putty を開いたままにする方法があるかどうかです。現在、Putty は接続が閉じられたことを通知し、ウィンドウを閉じるように指示します。代わりに Putty に接続を再開させ、ウィンドウを閉じて手動で再ログインする必要がないようにする方法はありますか?
答え1
おそらくClientAliveCountMax 0
、何らかのClientAliveInterval
オプションを設定しているsshd_config
(または何らかのデフォルト値が使用されている)でしょう。
これらの値をゼロ以外の値に設定すると、サーバーはクライアントがまだ応答していることを確認するキープアライブ メッセージを送信できるようになります。
ServerAliveCountMax
クライアントにも同様のオプション (openssh では )および)があるはずですServerAliveInterval
。
この動作はクライアント オプションを使用することによっても実行できますTCPKeepAlive
が、サーバー上でも同様に実行されますが、これはデフォルトでオンになっています。