解决 macOS 下 SSH 空闲一段时间后自动断开

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

参数说明

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

重新加载 sshd 服务。退出客户端,再次登陆即可验证。

参考链接

解决 macOS 下 SSH 空闲自动断开问题
Mac OS X Terminal ssh Connection Keepalive - Rick Cogley

评论

  1. a
    Safari 15.4
    2年前
    2022-7-24 18:50:43

    good to see.

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇