SSH , Secure Shell的缩写,是一种远程网络协议,用于通过 TCP/IP 网络安全地连接到远程设备,例如服务器和网络设备。
它是一种加密网络协议,提供强大的加密技术和散列以确保网络上两个设备之间的通信安全。
SSH主要使用两种认证方式:密码认证和公钥认证。通过密码身份验证,用户提供远程主机的 IP 地址或 FQDN(完全限定域名)和密码进行身份验证。
公钥认证使用SSH密钥对进行认证,它由两个SSH密钥组成:私钥和公钥。
私钥驻留在用户的计算机上,应始终保密且安全。公钥保存在用户连接的远程主机上。在身份验证过程中,会比较两个密钥的身份并授予访问权限。
通过SSH连接到远程系统时,您可能会遇到错误Client_loop: send disconnect: Broken pipeline。
![](https://www.alaica.com/wp-content/uploads/linux-190.png)
在本教程中,我们将了解发生这种情况的原因并解决该错误。
Client_loop:发送断开连接:管道损坏错误
该错误只是一条断开连接消息,通知您SSH 连接超时已超过
这是一段不活动的时期,在此期间客户端不会执行或发出任何Linux 命令。发生这种情况时,SSH 会话将终止,从而有效地断开您与远程服务器的连接。
大多数用户通常会按“ ENTER ”或键盘上的某个键以避免SSH 会话空闲,从而导致与主机的连接断开。然而,这可能既乏味又浪费时间。
值得庆幸的是,SSH 默认配置设置提供了一些参数,您可以配置这些参数来保持 SSH 连接处于活动状态更长时间的活动状态。
修复 Client_loop: 发送断开连接: 管道损坏错误
要解决此问题,您需要增加客户端上的SSH 连接超时时间。为此,请修改默认的 SSH 配置文件,该文件通常位于/etc/ssh/sshd_config。
$ sudo vi /etc/ssh/sshd_config
请务必找到这两个参数:ClientAliveInterval和ClientAliveCountMax。让我们看看他们做了什么。
- ClientAliveInterval – 这是 SSH 服务器向与其连接的远程客户端发送活动消息之前的不活动时间段。
- ClientAliveCountMax – 这是服务器将活动消息从服务器发送到客户端的尝试次数。
我们将这两个值设置如下:
客户端活动间隔 300 客户端活动计数最大 3
![](https://www.alaica.com/wp-content/uploads/linux-191.png)
这意味着在客户端不活动的前300秒(5 分钟)后,服务器将向客户端发送一条活动消息以保持 SSH 会话活动。
如果在接下来的300秒内(在 600 秒标记处)没有从客户端收到数据或响应,服务器将再次发送另一条活动消息。最后,在客户端不活动900秒后,SSH 连接将终止或断开。
请务必保存对文件所做的更改,然后退出。然后重新启动 SSH 守护进程。
$ sudo systemctl 重新启动 sshd
或者,您可以通过指定ServerAliveInterval参数(以秒(300 秒)为单位)来连接到远程客户端 Linux 系统,这意味着 SSH 会话的活动时间最长为 5 分钟。
$ ssh -o ServerAliveInterval=300 用户名@服务器 IP 地址
![](https://www.alaica.com/wp-content/uploads/linux-192.png)
在本教程中,我们演示了如何解决Client_loop:发送断开连接:管道损坏错误。正如您所看到的,您所需要的只是在 SSH 配置文件中执行一些调整。