欢迎来到我的博客
📔博主是一名大学在读本科生,主要学习方向是前端。
🍭目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏
🛠目前正在学习的是🔥 R e a c t / 小程序 React/小程序 React/小程序🔥,中间穿插了一些基础知识的回顾
🌈博客主页👉codeMak1r.小新的博客😇本文目录😇
博主专栏【React–从基础到实战】持续更新中
ssh空闲自动断开
首先,我们在本机终端中使用ssh命令连接到远程服务器的时候,经常出现空闲一段时间ssh连接就断开的情况,每次都要重新输入密码,非常麻烦,而且之前连接中输入的命令也无法查看了。
原因是,ssh连接在一段时间检测不到操作后,就会进入假死状态,超时自动断开。
解决这个问题的方式也很简单,你既然要隔一段时间就非得检测到操作,那我就隔一段时间就去操作一次就好了。那难道这个操作需要我们自己手动操作吗?
其实,我们可以使用心跳机制,在配置文件中设置每隔一段时间就发送一个心跳包,来维持这次的ssh连接不中断。
解决办法
⇒ 客户端配置
我们可以在我们本机上,进行客户端的配置,每隔一段时间向服务器发送一个心跳包,来维持这次的ssh连接通道不关闭。
以macOS的terminal
终端举例:
打开terminal
终端,进入/etc/ssh
目录
编辑ssh_config
文件,此文件为ssh的客户端配置文件。
sudo vim ./ssh_config
在ssh_config
文件的最下方的Host *
中新增
ServerAliveInterval 60
vim编译器中
Shift + i
进入编辑模式
编辑完成后,ESC
退出编辑模式,:wq
保存并退出当前文件
ServerAliveInterval 60
的含义是,每隔60s,就向ssh连接的服务器发送一个心跳包,维持ssh连接。
上面这个方式是macOS的全局配置,如果macOS下有多个用户,只想对当前用户进行配置的话,就进入当前用户的ssh_config
下修改文件即可。
⇒ 服务端配置
我们可以通过ssh连接到我们的服务器上,对服务器进行配置。
cd /etc/ssh
编辑sshd_config
文件,此文件为ssh服务端配置文件。
vim ./sshd_config
查找以下注释字段取消注释或直接添加至文件最后
ClientAliveInterval 60ClientAliveCountMax 3
ClientAliveInterval 60
的含义是,每隔60s,就向ssh连接的客户端发送一个心跳包,维持ssh连接。
ClientAliveCountMax 3
的含义是,服务器发出请求后客户端没有响应的次数达到一定值,就自动断开。正常情况下,客户端不会不响应。
client_loop: send disconnect: Broken pipe
在进行了ssh心跳的配置后,可能相隔一段时间还会出现下面这个错误。
client_loop: send disconnect: Broken pipe
- 解决方案
修改客户端的 /etc/ssh/ssh_config 配置文件
在Host *条目下添加 IPQoS=throughput
来源地址:https://blog.csdn.net/Svik_zy/article/details/127652195