私のHPCにはLSFジョブスケジューラがインストールされています。
ログインノードにログインし(xshellを使用)、対話型ジョブ送信コマンドを使用します。
bsub -Is csh
c01
そのため、nodeなどのHPCノードの1つを入力しました。
次に、たとえば別のノードに移動したいので、c02
次のようにします。
ssh c02
c02
正常にノードに入りました。しかし、数分後に接続が切断されました。メッセージは
Connection to c02 closed by remote host.
Connection to c02 closed.
それでは、この接続をどのように維持する必要がありますか?
使用すると、次のメッセージが生成されます。ssh -vvv c02
debug3: Wrote 64 bytes for a total of 2925
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
#0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cfd -1)
debug3: channel 0: close_fds r 4 w 5 e 6 c -1
Connection to c02 closed by remote host.
Connection to c02 closed.
Transferred: sent 2744, received 2384 bytes, in 158.3 seconds
Bytes per second: sent 17.3, received 15.1
debug1: Exit status -1
答え1
SSH接続を維持してみてください。 c01 の ~/.ssh/config に以下を作成または追加します。
host c02
ServerAliveCountMax 30
ServerAliveInterval 60
TCPKeepAlive yes
これにより、30分間に60秒ごとにTCPキープアライブメッセージが送信されます。 https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5
次のように権限を設定する必要があります。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
これらのオプションはコマンドラインにも含めることができますが、設定ファイルを使用すると作業が簡単になります。各ホストに適用したい場合はhost c02
使用してくださいhost *
。共有ファイルシステムがある可能性があるため、これはすべてのSSH接続に適用されます。
注:これらのオプションはで無効にすることができますsshd_config
。無効にすると効果はありません。
動作できるもう1つのオプションは、次の対話型コマンドを実行することです。watch ls ~