解决 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服务。退出客户端,再次登陆即可验证。

附录

参考链接

回复