リモートサーバーでプログラムを実行するためにSSH接続を確立しました。プログラムは10秒ごとにデバッグ情報を端末に印刷します。 SSHウィンドウを長時間(たとえば10時間)開いたままにすると、SSH接続は無効になりますか? SSHセッション内のアクティビティはどのように定義されますか?セッションをアクティブに保つには、x秒ごとにコマンドを入力/実行する必要がありますか?
答え1
特別な作業を行う必要はありません。 SSH は非アクティブのため、接続を終了しません。したがって、指定された非アクティブ期間はありません。以内にSSH。
ただし、ユーザーとサーバー間のネットワークパス上のデバイスの1つがパスを失う可能性があり、そのアクティビティの場合、通常は片側で十分ですが、必ずしもそうではありません(サーバー上の「到着確認パケット」、承認済みのバックサーバー)。 TCPを使用するとき)。
両側のトラフィックは継続的な接続を保証しません。 DSLモデムがあり、プロバイダが毎日新しいIPアドレスを受信することを決定した場合、接続は中断されます。
以下を挿入して、クライアントに定期的にいくつかのパケットを送信させることができます。
ServerAliveInterval 5
10秒ごとにサーバーからのトラフィックに加えて、5秒ごとにクライアントからサーバーへのトラフィックもあります/etc/ssh/ssh_config
。~/.ssh/config
接続をリセットするDSLモデムのより簡単な「解決策」は、サーバー側ソフトウェアを実行することです。tmux
またはscreen
:接続が切断されたら、SSHを介してサーバーに再度接続して発行するか、中断することtmux attach
なくscreen -r
サーバープログラムを表示し続けることができます。
/を使用することは、接続が切断されていることをあまり心配しませんが、接続が切断されたときにサーバープログラムが停止した場合にtmux
特に便利です。screen
これを行うには、元のプログラムの出力をファイルにリダイレクトして使用することもできますが、必要に応じてtail -f
サーバープログラムと簡単にやり取りすることはできません。tmux
(screen
基本形)使いやすいですが、グラフィックターミナルのスライダーを使って後ろにスクロールできないなどの副作用があります。サーバーがバッファから後ろにスクロールできるようにするには、キーボードショートカットを使用する必要があります。 。
切断されたデバイスのより柔軟なソリューションは、次のものを使用することです。mosh
。これはSSHを使用していくつかの秘密情報を交換し、IPアドレスのいずれかまたは両方が変更されても再接続を可能にします。しかし、設定して作業を開始するのは難しいです。
tmux
あなたの場合、接続が切断されたら手動で使用して再接続することから始めます。
答え2
また、SCREENコマンドを使用することは本当に役に立ちます。これにより、SSH接続を心配することなくすべてのコマンドを実行できます。