【发布时间】:2015-01-13 06:12:28
【问题描述】:
我必须通过ssh 连接到许多服务器机器。
但是如果我有一段时间没有使用终端,连接就会断开。现在我必须关闭我的终端并使用ssh 再次登录。
在这种情况下是否有任何插件可以帮助我?
【问题讨论】:
我必须通过ssh 连接到许多服务器机器。
但是如果我有一段时间没有使用终端,连接就会断开。现在我必须关闭我的终端并使用ssh 再次登录。
在这种情况下是否有任何插件可以帮助我?
【问题讨论】:
我认为 ssh 中有内置功能可以解决您的目的。
来自man ssh_config:
ServerAliveInterval
以秒为单位设置超时间隔,如果在此之后没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器响应。默认为 0,表示这些消息不会发送到服务器。此选项仅适用于协议版本 2。
默认情况下,保持活动被禁用,但您可以通过传递 ServerAliveInterval-参数和 -o 选项为单个连接启用它们:
ssh -oServerAliveInterval=<time in seconds> <rest of your ssh command arguments>
如果您喜欢对所有 SSH 连接进行此配置。将以下内容放入您的~/.ssh/config 会更容易:
Host *
ServerAliveInterval <time in seconds>
此外,还有第二个参数会影响 keep-alive-behaviour:ServerAliveCountMax(请参阅man ssh_config)。
我发现了一篇关于ServerAlive-Parameter:How to Keep Alive SSH Sessions的好文章
【讨论】: