macOS 下使用 Terminal 连接 SSH 远程主机空闲一段时间就会进入假死状态,无法操作,短暂无响应后。
遇到这种事情,非常麻烦,可能接着的命令重新开 tab 连接,前面的结果都看不到了。
实质是终端没有设置心跳连接,终端连接一段时间后无法检测到心跳就会断开连接。
解决办法
分别包括客户端和服务端
客户端配置
在使用 Shell 的机器上设置,我配置后,已经解决。但找到的资料还有服务端配置,那就一起配置下,免得出问题。
仅当前用户配置
在客户端修改终端设置,每隔固定时间发心跳包来保持长连接状态。推荐使用此方式进行配置,仅对当前用户生效。
vim ~/.ssh/config
添加
Host *
ServerAliveInterval 30
ServerAliveCountMax 2
全局配置
sudo vim /etc/ssh/ssh_config
添加
ServerAliveInterval 30
ServerAliveCountMax 2
服务端配置
sudo vim /etc/ssh/sshd_config
查找以下注释字段取消注释或直接添加到文件中
ClientAliveInterval 60
ClientAliveCountMax 3
参数说明
参数 | 说明 |
---|