Answers:
为了使连接保持活动状态,您可以在显示/etc/ssh/ssh_config
的行中进行检查,该行ServerAliveInterval
告诉您计算机多长时间(以秒为单位)发送一个空数据包来保持连接状态。如果那里有一个0,表明您的计算机没有在尝试使连接保持活动状态(已禁用),否则它会告诉您发送上述数据包的频率(以秒为单位)。尝试输入120或240,如果它仍然终止连接,则可以降低到5,如果没有达到该数字,则可能是路由器将连接转储到可用内存中。
为了在挂起时杀死它,可以使用ssh转义字符:
~.
也就是说,先按代字号,然后按句号(如果它不起作用),请在按该键之前按Enter键,这将立即终止连接。
ssh_config
是/etc/ssh/ssh_config
在Mac OS X我可以编辑自己的答案,但我没有在这个网站足够的代表这样做。
您可以:
在系统范围内为所有连接配置系统,方法是编辑:/ etc / ssh / ssh_config 并添加以下行:
ServerAliveInterval 10
或者,每服务器〜/ .ssh / config
Host keepsdroppingme.com
ServerAliveInterval 10
它基本上每10秒发送一次保持活动的数据包...
关于配置文件的确切路径,此处的各种答案存在冲突。也许不同的unix有所不同?我建议您阅读系统上的手册页!
在man ssh(1)中,搜索文本:config。在我的系统上,我可以选择系统范围的配置文件或此用户的配置文件(路径奇怪地不同)。
在man ssh_config(5)中,搜索文本:alive。在我的系统上,看起来我需要同时设置ServerAliveInterval和ServerAliveCountMax。
在macOS 10.12 Sierra上对我有用的是将以下两行放在〜/ .ssh / config中:
ServerAliveInterval 20
ServerAliveCountMax 180
现在,我可以不断开连接地连接到我的Ubuntu 16.04服务器20 * 180秒= 1小时。让我开心!
从MacPorts或Homebrew 安装autossh:brew install autossh
打开终端并运行 autossh -M 20000 -f [SSH ARGUMENTS GO HERE]
断开wifi连接或将Mac置于睡眠状态。
当您重新连接到wifi时,ssh会话将自动重新连接。
乔恩·斯泰西(Jon Stacey)写了一篇博客文章,介绍您登录时自动激活ssh会话。
从MacPorts或Homebrew 安装autossh:brew install autossh
使用bash脚本创建Automator工作流程。
刚解决此问题,请在中添加以下几行$HOME/.ssh/config
。
Host *
ServerAliveInterval 120
TCPKeepAlive no
设置TCPKeepAlive no
告诉客户端仅假定连接仍然良好,直到用户请求另行证明为止,这意味着在您的ssh术语在后台闲置时临时断开连接不会终止连接。
~.
取消提示,很棒的提示!但是它实际上是做什么的呢?