Press "Enter" to skip to content

配置SSH客户端减少SSH掉线

Last updated on 2021/01/05

作为一个不专业的站长以及一个不专业的开发者,不管是连接到本地内网测试还是远程云端服务器,SSH应该是比较常用的一项协议,内网还好,网络比较少变动,一般SSH连接上服务器基本上不会有抖动,连上之后就算24小时一般也不会断开,但是如果是远程服务器,SSH连接上之后一段时间不操作很可能会遇到输入无响应以及如下报错:

Connection reset by 106.52.xx.xx port 22

完整报错提示:

ssh root@izoco.cn -p22
root@izoco.cn's password:
Linux server 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Dec 30 09:10:37 2020 from 106.6.xx.xx
root@server:~$ Connection reset by 106.52.xx.xx port 22

就是最后一行,一般都是很久不动之后才会出现这几个字符.

每次遇到这个问题都要重新登录,用秘钥登录还好,要是只是密码登录,又得重复输入一遍又长又乱的密码,次数多了简直不胜其烦,于是花了点时间想办法解决了这个问题。

其实办法也很简单,就是更改下本地SSH客户端的配置就好,Windows系统、macOS及Linux系统通用。

在当前用户的home目录下面的.ssh文件夹下面新建config或者追加到config文件的末尾,假设当前用户名为zoco,Windows系统是在/User/zoco/.ssh/config,macOS/Linux系统是在~/.ssh/config,只需要一行配置就行:

ServerAliveInterval 10

这行配置是让本地SSH客户端每隔10秒发送一个keep-alive包给服务端保持连接,这个数字可以设置大一点,我一般设置10秒,这样除了网络断开基本上没有遇到过连接被重置的问题了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注