究竟是什么原因导致 ssh 连接中断?当您闲置一段时间后,它就会断开连接。
如何保持连接处于活动状态(不连接autossh
或重新连接)?
答案1
这很可能是防火墙,它会在一段时间后切断您的空闲连接。
您可以配置openssh
服务器或客户端在一段时间后发送KeepAlive。
每 5 分钟向服务器发送一次 KeepAlive:
ssh user@server -o ServerAliveInterval=300
如果您可以控制openssh-server
,您还可以在定义的时间间隔后向客户端发送 KeepAlives 。将以下内容添加到/etc/ssh/sshd_config
:
ClientAliveInterval 300
TCPKeepAlive yes
TCPKeepAlive
应该是yes
默认的。
openssh-server
修改后重启:
/etc/init.d/ssh restart
答案2
您可以尝试以下一些操作:
1)很可能是 shell 超时。通过在您的个人资料中取消设置来禁用超时TMOUT
。TMOUT
是 bash 在终止之前等待输入的秒数。回显$TMOUT
以查看是否已设置。将以下内容添加到您的个人资料中:
unset TMOUT
2) 配置 PuTTY 以发送 keepalive 数据包,方法是进入:
Settings > Connection > Seconds between keepalives = 60
3)调整你的sshd_config
(通常在/etc/ssh
)并添加:
TCPKeepAlive yes
ClientAliveInterval 60
保存文件并重新启动sshd
。