乐趣区

关于程序员:如何修复-SSH-Clientloop-send-disconnect-Broken-pipe-Error

动动发财的小手,点个赞吧!

SSH 是 Secure Shell 的缩写,是一种近程网络协议,用于通过 TCP/IP 网络安全地连贯到近程设施,例如服务器和网络设备。

它是一种加密网络协议,可提供弱小的加密技术和散列法来爱护网络上两个设施之间的通信。

SSH 应用两种次要的认证形式:明码认证和公钥认证。应用明码验证时,用户提供近程主机的 IP 地址或 FQDN(齐全限定域名)和明码进行验证。

公钥认证应用 SSH 密钥对进行认证,SSH 密钥对由两个 SSH 密钥组成:私钥和公钥。

私钥驻留在用户的机器上,应始终窃密和平安。公钥保留在用户连贯的近程主机上。在身份验证期间,比拟两个密钥的身份并授予拜访权限。

通过 SSH 连贯到近程零碎时,您可能会遇到谬误 Client_loop: send disconnect: Broken pipe。

在本教程中,咱们将理解为什么会产生这种状况并解决谬误。

Client_loop: send disconnect: Broken pipe 谬误

该谬误只是一条断开连接音讯,告诉您已超过 SSH 连贯超时。

这是一个不流动的期间,在此期间没有从客户端执行或收回任何 Linux 命令。产生这种状况时,SSH 会话将终止,从而无效地断开您与近程服务器的连贯。

大多数用户通常会按“ENTER”或键盘上的某个键,以防止闲暇 SSH 会话导致与主机断开连接。然而,这可能是乏味且浪费时间的。

值得庆幸的是,SSH 默认配置设置提供了一些参数,您能够配置这些参数以使 SSH 连贯放弃活动状态更长的工夫。

修复 Client_loop: send disconnect: Broken pipe 谬误

要解决此问题,您须要减少客户端上的 SSH 连贯超时工夫。为此,请批改通常位于 /etc/ssh/sshd_config 的默认 SSH 配置文件。

sudo vi /etc/ssh/sshd_config

请务必找到这两个参数:ClientAliveInterval 和 ClientAliveCountMax。让咱们看看他们做了什么。

  • ClientAliveInterval——这是一段不流动的工夫,在此之后 SSH 服务器向连贯到它的近程客户端发送一条流动音讯。
  • ClientAliveCountMax – 这是服务器尝试将流动音讯从服务器发送到客户端的次数。

咱们将这两个值设置如下:

ClientAliveInterval    300
ClientAliveCountMax    3

这意味着在客户端不流动的前 300 秒(5 分钟)之后,服务器将向客户端发送一条流动音讯以放弃 SSH 会话处于活动状态。

如果在接下来的 300 秒内(在 600 秒标记处)没有从客户端收到任何数据或响应,服务器将再次发送另一条流动音讯。最初,在客户端不流动 900 秒后,SSH 连贯将终止或断开。

请务必保留对文件所做的更改,而后退出。而后重新启动 SSH 守护程序。

sudo systemctl restart sshd

或者,您能够通过以秒(300 秒)为单位指定 ServerAliveInterval 参数来连贯到您的近程客户端 Linux 零碎,这意味着您的 SSH 会话处于活动状态最多 5 分钟。

ssh -o ServerAliveInterval=300 username@server_ip_address

在本教程中,咱们演示了如何解决 Client_loop: send disconnect: Broken pipe 谬误。如您所见,您只需在 SSH 配置文件中执行一些调整。

本文由 mdnice 多平台公布

退出移动版