解决 macOS 下 SSH 空闲自动断开问题

分类:macOS 评论: 0

macOS 下使用终端连接 Linux 空闲一段时间就会进入假死状态。

这是因为终端连接一段时间后无法检测到心跳就会断开连接。

解决办法

服务端配置

在服务端修改终端配置,定时发送心跳包,保持长连接状态。

$ sudo vim /etc/ssh/sshd_config

查找以下注释字段或者直接添加至文件最后

ClientAliveInterval 60
ClientAliveCountMax 3

客户端配置

在客户端修改终端设置,保持长连接状态。

$ sudo vim /etc/ssh/ssh_config

查找以下注释字段或者直接添加至文件最后

ServerAliveInterval 60
ServerAliveCountMax 2

注意:必须使用 sudo 命令进行执行,因为 macOS 上默认以普通用户身份运行。

参数说明

ClientAliveInterval 指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送
ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
ClientAliveCountMax, 使用默认值3即可.
ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下, 客户端不会不响应.
重新加载sshd服务。退出客户端,再次登陆即可验证。

参考链接

回复