我必须通过ssh
连接到许多服务器计算机。
但如果我一段时间没有使用终端,连接就会断开连接。现在我必须关闭终端并再次使用ssh
登录。
在这种情况下是否有任何插件可以帮助我?
答案 0 :(得分:2)
我认为ssh中有内置函数可以解决你的目的。
来自man ssh_config
:
ServerAliveInterval
设置超时间隔(以秒为单位),之后如果没有从服务器收到数据,ssh(1)将通过加密通道发送消息以请求服务器的响应。默认值为0,表示这些消息不会发送到服务器。此选项仅适用于协议版本2.
默认情况下,保持alives已禁用,但您可以通过使用-o
选项传递 ServerAliveInterval - 参数来为单个连接启用它们:
ssh -oServerAliveInterval=<time in seconds> <rest of your ssh command arguments>
如果您希望为所有SSH连接配置此配置。将以下内容放入~/.ssh/config
:
Host *
ServerAliveInterval <time in seconds>
此外还有第二个影响保持活动行为的参数:ServerAliveCountMax
(参见man ssh_config
)。
我发现了一篇关于 ServerAlive - 参数的好文章:How to Keep Alive SSH Sessions