-o ServerAliveInterval=30ssh -o ServerAliveInterval=30
ssh -o ServerAliveInterval=120 user@ip
或者
ssh -o TCPKeepAlive=yes -o ServerAliveInterval=300 用户@域名或IP -p 端口
/etc/ssh/sshd_config 配置sudo vi /etc/ssh/sshd_config
Ubuntu20.04默认的/etc/ssh/sshd_config的ClientAliveCountMax和ClientAliveInterval


设为:
ClientAliveInterval 120 -------------每120秒向客户都客户端发送心跳包
ClientAliveCountMax 3 --------------客户端无响应次数达到,就自动断开连接
复制粘贴
ClientAliveInterval 120
ClientAliveCountMax 3
esc:wq! 保存, 重启sshd
sudo systemctl restart sshd
echo -e "\n### 保持客户端连接不断开的设置↓ \nClientAliveInterval 120\nClientAliveCountMax 3" | sudo tee -a /etc/ssh/sshd_config && sudo systemctl restart sshd ;
echo -e "\n### 保持客户端连接不断开的设置↓ 于 $(date "+%Y-%m-%d %H:%M:%S") 设置 \nClientAliveInterval 120\nClientAliveCountMax 3" | sudo tee -a /etc/ssh/sshd_config && sudo systemctl restart sshd ;
ClientAliveInterval 向客户端发送心跳包的间隔时间,整数表示多少秒设置一个以秒记的时长,如果超过这么长时间没有收到客户端的任何数据,
sshd 将通过安全通道向客户端发送一个”alive”消息,并等候应答。
默认值 0 表示不发送”alive”消息。这个选项仅对SSH-2有效。
ClientAliveCountMax 客户端无应答的最大次数sshd 在未收到任何客户端回应前最多允许发送多少个”alive”消息。默认值是 3 。
到达这个上限后,sshd 将强制断开连接、关闭会话。
需要注意的是,”alive”消息与 TCPKeepAlive 有很大差异。
“alive”消息是通过加密连接发送的,因此不会被欺骗;而 TCPKeepAlive 却是可以被欺骗的。
如果 ClientAliveInterval 被设为 15 并且将 ClientAliveCountMax 保持为默认值,
那么无应答的客户端大约会在45秒后被强制断开。这个指令仅可以用于SSH-2协议。
该项使用TCP原生keepalive
如果设置为yes(默认值),那么周期性地检查连接是否存活。
当客户端崩溃或者由于其他原因导致连接死掉,那么该项检
查会让ssh或scp连接断开,即便只是临时性的故障。
这个选项在传输层(TCP)测试连接
将该参数设置为no,会导致服务器不去检查连接是否存活。
这项使用TCP的keepalive选项,未被加密,容易受到IP欺骗攻击
经测试,只使用该项的话,还是会断开
Windows 中的 OpenSSH - 什么是适用于 Windows 的 OpenSSH?
Windows 中的 OpenSSH - 适用于 Windows 的 OpenSSH 入门
Win10默认自带OpenSSH客户端 默认的位置在: “C:\Windows\System32\OpenSSH\ssh.exe” 👇

打开编辑 /etc/ssh/ssh_config 文件
sudo vi /etc/ssh/ssh_config
加入
TCPKeepAlive yes
ServerAliveInterval 120
或者一步搞定
echo -e "#远程控制台不断开\nTCPKeepAlive yes\nServerAliveInterval 120" | sudo tee -a /etc/ssh/ssh_config