push文件 通过ssh_修复ssh连接Broken Pipe Error

如果使用SSH连接到远程Linux服务器,则会注意到,如果将SSH会话保持一段时间不活动,然后再次尝试使用它,则SSH会话会断开连接,并显示以下错误消息:

:client_loop: send disconnect: Broken pipe

在某些系统上,它将显示“写入失败:管道损坏”或“连接被远程主机关闭”。

让我们看看是什么导致此错误,以及如何使SSH连接保持活动状态。

使用SSH修复损坏的管道错误

由于连接不活跃,所以ssh关闭了连接,通常默认是5分钟。

为避免SSH会话断开连接,可以在特定时间间隔从服务器向客户端(ClientAliveInterval)或从客户端向服务器(ServerAliveInterval)发送“活动消息” 。

这样,可以使SSH会话保持活动状态,因为客户端和服务器之间存在通信,并且服务器可以理解客户端仍然存在。

现在,有两种方法可以做到这一点。您可以将活动消息从客户端发送到服务器,或者从服务器发送到客户端。

  • 如果通过SSH连接到多台服务器,请在您的计算机上进行设置。
  • 如果是系统管理员,并且有几个用户抱怨SSH连接频繁断开,则可以在服务器上进行设置。

方法1:客户端SSH配置更改

假设想通过最多10分钟(600秒)的空闲时间来保持SSH连接的活动状态。

通过SSH连接到远程Linux系统时,可以这样设置以下ServerAliveInterval值:

ssh -o ServerAliveInterval=600 username@server_ip_address

现在,此功能可以正常工作,但是每次连接到服务器时手动输入此选项很麻烦。为什么不将其永久化?

如果您感到懒惰或不想详细介绍,请使用以下命令将有效间隔设置为600秒(10分钟):

echo "ServerAliveInterval 600" >> ~/.ssh/config 

这会将您将使用的所有SSH连接的ServerAliveInterval值设置为10分钟。如果需要,请尝试一下。

如果您想使其更合适,则应如下添加:

Host *ServerAliveInterval 600

方法2:服务器端SSH配置更改

服务器的SSH配置文件通常位于/etc/ssh/sshd_config

如果打开此文件,能看到以下两个参数

  • ClientAliveInterval: 这是不活动的时间段,在该时间段之后,服务器将向ssh连接的客户端发送活动消息。
  • ClientAliveCountMax:这是服务器将重试发送活动消息的次数。

ClientAliveInterval设置为200秒,把ClientAliveCountMax设置为3。服务器将在200s后发送活动消息,若客户端无回应,400s后再发送一次,600s再发送一次,若客户端无响应,ssh连接断开

编辑/etc/ssh/sshd_config文件。查找ClientAliveInterval和ClientAliveCountMax条目。删除行开头的#键,并为其指定适当的值。

23a6e0685acd1f7fee3c240c8a91b41b.png

保存并退出文件。

请勿将SSH连接超时设置为几个小时,那将浪费资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值