如果您使用 SSH 连接并遇到错误,本教程为您提供了一个很好的解决方案: SSH Connection Timing Out / Broken Pipe. 不当说错。 这是一条消息,宣布您的计算机与其所连接的服务器之间的连接已关闭 Putty 或 Terminal.
两者都作为 Windows 以及通过 Mac (在过去的十年中)我花了很多时间在 SSH连接 到 Web 服务器、电子邮件服务器、云和其他备份包。 最喜欢的分布 Linux 无疑是 CentOS.
服务器管理员压力最大的事情之一是 中断SSH连接. 要么是在扣腻子时突然出现,要么 Terminal (通常是本地连接问题),或者经过一段时间“idle”-它不通过SSH会话与远程服务器进行交互的时间段。
如果您使用的是 Mac 并使用该实用程序 Terminal 对于通过 SSH 的远程连接,那么在一些不活动之后,您肯定会与消息断开连接:client_loop: send disconnect: Broken pipe”。 我给了解决方案 这里的文章,我说可以在“/etc/ssh/ssh_config
”行:
Host *
ServerAliveInterval 120
以上解决方案对以下用户有效 Mac,老实说是最新的更新 macOS 重新启动后我不保留文件中所做的更改ssh_config
”,并且断开空闲会话的问题又回来了。
一种解决方案,我们可以防止在设置的距离内断开SSH会话的连接 Terminal (macOS)或 油灰 (Windows),除了“ServerAliveInterval
”从我们的计算机上,确定要与SSH应用程序/客户端定期通信的远程服务器。
这就是为什么我们必须将指令“ClientAliveInterval
“在”sshd_config
”在我们要连接的服务器上。
防止 SSH Connection Timing Out / Broken Pipe (ssh_config 提示)
1.我们连接到我们要激活的服务器并设置一个时间间隔“ClientAliveInternal”。 打开 SSH in Putty, Terminal 或其他类似的实用程序,我们与用户进行身份验证 root
.
ssh [email protected]
2.执行命令行在文件中搜索“sshd_config“ 如果 ”ClientAliveInterval”是活动的,设置的时间段是多少。
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
在我们的场景中“ClientAliveInterval”被禁用,时间间隔值为零。
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
主题标签“#
“放在一行的前面,将其取消。 她不活跃。
3.我们打开编辑器“nano
“或”vim
“文件”sshd_config
”。 我更喜欢 ”nano“。
sudo nano /etc/ssh/sshd_config
4.删除“#
“在行前”ClientAliveInterval
”并设置秒数:60、120…
ClientAliveInterval 120
ClientAliveCountMax 10
5.保存修改并重启服务》sshd
“。
sudo systemctl restart sshd
ClientAliveInterval
:这是服务器发送空数据包到我们连接到服务器的客户端/应用程序的时间间隔(以秒为单位)。 这种做法将使连接保持活动/活动状态。
ClientAliveCountMax
:SSH客户端无响应 在10秒的120个周期中 (通过设置 ”ClientAliveInterval") 连接将被中断。 也就是说,客户在 20 分钟后 SSH 没有响应服务器发送的空数据包。
通过这些更改,连接 SSH 它将更加稳定并保持安全。