Linux 中使用 SSH 连接总是隔一段时间就会断开该怎么办?

2024年6月3日系统运维15,428字数 613阅读2分2秒阅读模式

之前用 Centos 服务器也没这个问题,最近切换到 Debian 9,SSH 连接总是隔一段时间就会断开重新连接,但也没影响工作,也就没在意。

但是,今天想安装 PHP,那玩意耗时比较久,然后,每次安装途中,因为我没有操作,连接就断开了,重连后进度丢失,只能再来一次,气的我够呛。

必须,把这个问题给彻底解决了,谷歌,启动~

解决思路

因为是过一段时间就断开,说明服务器肯定是认为客户端已经下线,所以主动断开了连接。

猜测其它服务器不会这样,就是因为没有这个机制。

那么,解决的话,只需要让服务器偶尔和客户端交流下,就可以解决掉这个问题。

解决方法

1.

打开 SSH 配置文件

vim sshd_config

2.

修改 ssh 配置

去掉注释,并修改这三行

TCPKeepAlive yes
ClientAliveInterval 20
ClientAliveCountMax 3
  • TCPKeepAlive 顾名思义,保持TCP为活跃状态
  • ClientAliveInterval 指定服务端向客户端请求消息的时间间隔,单位是秒
  • ClientAliveCountMax 指服务端发出请求后客户端无响应则自动断开的最大次数(这个值我看网上好多教程都没搞清楚,设置的非常大,完全没必要,这个值其实为重试次数,意味着连接失败会重新试几次,而如果正常连接,根本不用重试,而如果无法连接,一直重试,浪费资源,也没有意义)

3.

重启 sshd 服务

/etc/init.d/ssh restart

现在问题就被解决了。

Ethan_2024-06-03_17-26-29

在 Linux 中使用 logrotate 管理日志文件 系统运维

在 Linux 中使用 logrotate 管理日志文件

logrotate 是一个在 Linux 操作系统中用来管理日志文件的工具。其主要功能是帮助系统管理员自动管理和轮换日志文件,防止日志文件过大,占用过多的磁盘空间。logrotate 可以定期对日志文...
如何配置 SSH 登录管理 GitHub 仓库及账号 技巧分享

如何配置 SSH 登录管理 GitHub 仓库及账号

现在 Github 官方推荐的方式就是 SSH,之前一直也懒得配置,反正有办法可以上传仓库,没啥影响就没动。 但想用 VSCode 直接同步仓库,就容易报错,今天有空,索性就按照官方教程实现 SSH ...