PuTTY
がアイドル状態の場合、しばらくするとセッションが終了します。
PuTTYにはtime
パラメータがないため、PuTTY
sshセッションを常に有効にするにはどうすればよいですか?
チェックすべきもう1つのことは、システムが環境変数TMOUTを設定しているかどうかです。これを確認するには、次のようにします。
env | grep TMOUT
または
echo $TMOUT
設定されている場合は、変更または設定解除できます。値を変更するには:
export TMOUT=3600
ここで、数値は、ログアウトされるまでの秒数です。それ以外の場合は、設定を解除して機能をオフにします。
unset TMOUT
セキュリティ上の理由から、システム管理者がこれを設定している可能性があります。したがって、システム管理者でない場合は、自分で何かを変更する前にこれを確認することをお勧めします。
SSHキープアライブを有効にする 以下の設定を正の値に変更します。
ほとんどの場合、300の値で十分です。 (5分。)これにより、PuTTYはリモートホストに定期的にSSH nullパケットを送信するため、セッションがタイムアウトしません。
しないでくださいSO_KEEPALIVE
オプションはそのページの下部にあります。これはかなり 低レベルのメカニズム です。これは、アプリケーションレベルのプロトコルに独自のキープアライブメカニズムがない場合にのみ使用するのが最適です。 SSHはそうするので、この場合TCPキープアライブを使用すべきではありません。
接続が切断される原因となる可能性のあるものは他にもありますが、これは最初に試すべきことです。それが機能しない場合は、VPNタイムアウト、ルータータイムアウト、リモートSSHサーバーの設定変更、不安定な接続など、他のことを調べる必要があります。
他の回答に加えて、PuTTYが終了しても(接続が途絶える、VPNがダウンするなど)セッション管理を行えるようにscreen
を実行することをお勧めします。
これをPuTTYで実行して、10分ごとにセッションをアクティブ化します。
while true; do date; sleep 600; done
シェルプロンプトでtop
コマンドを使用できます。これにより、セッションが存続します。
PuTTY _Connection>SSH
_メニューでは、次の値を_Remote command:
_ bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT')
として使用します。
上記のいずれも役に立たなかった場合、
システムのsshd構成を変更する必要があります!
注意してください、このためにはルート権限が必要です!
sshd_config
ファイル、私の場合は/etc/ssh/sshd_config
内容は:
ClientAliveInterval 300
ClientAliveCountMax 0
への変更:
ClientAliveInterval 6000
ClientAliveCountMax 3
忘れないで
service sshd restart