配置SSH客户端防止闲置SSH断线

因为工作关系,经常要从本地开发机器连接线上的测试服务器、正式服务器以及私人的各个VPS,但最近这段时间不知道从什么时候开始,连接成功之后的 SSH 会话只要闲置几分钟就出现断线情况,每次要用的时候都需要重新连接,事情多的时候真的搞得挺恼火的。

网络环境为深圳电信100MB,SSH 客户端为 macOS 中安装的 iTerm2 ,直接用 SSH 命令连接。

我的习惯是,要远程服务器的时候,打开一个 Tab 连好然后该写代码该操作数据库就操作数据库,需要用的时候再切换回来。一直这么用的都没什么问题,这几天不知道是网络原因还是什么情况,经常闲置几分钟就断开了。

如果说是国外的机器我也就假装理解了,但是我深圳本地连接深圳区域的阿里云都能给我断开,这我实在不能忍!

放狗搜了一波,除了使用 screen、tmux 等方式外,发现有三种解决办法,一种是建立连接的时候加上参数,第二种是配置本地 SSH 客户端,另一种是配置服务器端。

毫无疑问,肯定是第二种配置本地 SSH 最方便了,一次配置,连接多少个服务器都没问题,老样子,上代码。

打开本地 SSH 配置文件,默认是~/.ssh/config,到里面增加一行:

ServerAliveInterval 10

后面的10单位是秒,表示各多少秒发送一个数据包保持连接,我这里选了10秒

退出,保存之后,再用 SSH 命令连接服务器,就算隔了30分钟在操作发现也没断线了,这招治好了我多年的强迫症啊。