HPC ssh“连接被远程主机关闭”

HPC ssh“连接被远程主机关闭”

我的 HPC 安装了 LSF 作业调度程序。

我登录登录节点(我使用xshell)并使用交互式作业提交命令

bsub -Is csh

于是,我进入了HPC节点之一,例如c01node

然后我想进入另一个节点,例如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 ~

相关内容