我的 HPC 安装了 LSF 作业调度程序。
我登录登录节点(我使用xshell)并使用交互式作业提交命令
bsub -Is csh
于是,我进入了HPC节点之一,例如c01
node
然后我想进入另一个节点,例如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 keepalived。在 c01 上创建或添加以下内容到 ~/.ssh/config
host c02
ServerAliveCountMax 30
ServerAliveInterval 60
TCPKeepAlive yes
这将在 30 分钟内每 60 秒发送一条 TCP keepalive 消息。 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
,如果是的话它们将不起作用。
另一个可能有效的选项是运行交互式命令,例如:watch ls ~