如何解决由于不活动而被远程主机关闭的ssh连接?


14

我目前正在尝试使用SSH,在闲置1至2分钟后,我得到:

superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$

只要我在ssh终端中键入内容,连接就保持不变。闲置1至2分钟后,我会收到上述消息。我尝试连接的计算机是Ubuntu 12.04.1 LTS 64位服务器版本。它不是物理服务器,而是访客VMware。我正在从Mac终端进行切换。

请不要将此问题与该网站上带有关键字的类似问题混淆ssh_exchange_identification,这是无关的。

Answers:


17

将以下内容添加到$ HOME / .ssh / config中,所有ssh连接将每30秒发送一次TCPKeepAlive:

TCPKeepAlive yes
ServerAliveInterval 30

无法在服务器上找到配置文件
insoftservice

您可以在主目录中创建该文件(如果该文件不存在)
balkian

9

如果从Linux计算机连接,则可以直接从命令行使用某些选项

TCPKeepAlive:使用TCP / IP协议的KEEPALIVE选项可在指定的不活动时间间隔后保持连接活动。在大多数系统上,这意味着2个小时。因此,通过将TCPKeepAlive选项传递给SSH,SSH客户端将向SSH服务器发送加密的数据包,从而保持TCP连接的正常运行。

ssh -o TCPKeepAlive=yes user@some.host.com

ServerAliveInterval:设置超时间隔(以秒为单位),该间隔由您指定,如果不从SSH客户端向SSH服务器发送任何数据包,则SSH将向服务器发送加密请求以请求TCP响应。要每30秒发出一次请求:

ssh -o ServerAliveInterval=30 user@some.host.com

资源


0

您需要“保持活力”

根据您的客户,这可能微不足道或只是简单-它应该不会更难!

例如,在腻子中,它在连接选项上(将keepalive设置为非零值)


我在哪里设置keepalive?在服务器上还是从Mac?我应该在哪里设置该值,推荐值是多少?
蒂埃里·林

Keepalive将在客户端上……对于您的Mac。某个地方会有选择!
安德鲁
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.