SSH 总是被强行中断,尤其是用 VSCode 代码写的好好的,突然刷新窗口,不仅效率低,更惹人恼火。
可以通过配置服务端或客户端的 SSH 来保持 SSH 链接:
方法一:配置服务端
可以在服务端配置,让 server 每隔 30 秒向 client 发送一个 keep-alive 包来保持连接:
vim /etc/ssh/sshd_config
ClientAliveInterval 30
ClientAliveCountMax 60
第二行配置表示如果发送 keep-alive 包数量达到 60 次,客户端依然没有反应,则服务端 sshd 断开连接。如果什么都不操作,该配置可以让连接保持 30s*60,30 min
重启本地 ssh
sudo service ssh restart
如果找不到 ssh,”Failed to restart ssh.service: Unit ssh.service not found.” ,需要安装
sudo apt-get install openssh-server
方法二:配置客户端
如果服务端没有权限配置,或者无法配置,可以配置客户端 ssh,使客户端发起的所有会话都保持连接:
vim /etc/ssh/ssh_config
ServerAliveInterval 30
ServerAliveCountMax 60
本地 ssh 每隔 30s 向 server 端 sshd 发送 keep-alive 包,如果发送 60 次,server 无回应断开连接。
在 VSCode 里可以直接添加配置,效果一样:
Host 11.22.33.44
HostName 11.22.33.44
User user
Port 112343
ServerAliveInterval 30
ServerAliveCountMax 60