服务器SSH登陆错误:Write failed: Broken pipe

最近在在修改内核,自己修改的内核总是怪怪的,做了几个小测试,因为就是看看任务的分配情况,所以都pkill了,但是这个pkill并没有kill那么好使,进程没有结束,该条命令也没有结束,不能还原到命令书入行,因为是远程登陆服务器,所以我直接吧窗口close了,有在一个新的窗口登陆连接了服务器,自己也没大在意,结果在多次重操作以后,服务器就出现了如下错误:

[root@localhost Desktop]# ssh IP
# root@IP's password: 
# Write failed: Broken pipe

在我输入ssh远程登录命令响应很快,直接返回输入用户名,像平时一样。但是输入用户名以后,会等待很长时间,然后返回下边的错误信息:Broken pipe
查了很多资料,和大家说的错误有点不一样,他们的都是连接中间中断了,或被踢下线。然后大家给出的修复针对我的状况是无效的,我因为现在是一点都连不进去,连接了好多次,根本连不上了,于是我只能去机房重启了服务器。

分析原因:我昨天做测试的时候,运行命令提交有错误,后台执行的重定向写错了,正确的是2 > &1,我运行了好多次 都是&2> 1,可能我错误的操作重定向,此时暂用了pipe,导致后来的命令写不进去,ssh 也登陆不上了。
总之大家,提交命令的时候要小心仔细,尤其是在提交后台执行命令时。

下面有是一些建议防止突然出现pipe error 被踢出远程登录的方法。包括两种一种是作为客户端登陆的系统配置,一种是配置对应服务器的配置。

如果常用的ssh连接客户端是linux操作系统,可以在本操作系统中配置信息,该信息将会保持ssh的TCP连接每60秒一次。

下面这个命令保证的是当前的linux客户端ssh登陆其他服务器的时候,该系统内的所有用户的ssh都会保持60秒keep live请求。这个修改的系统ssh的配置信息

[root@localhost ~]# echo "SeverAliveInterval 60" >>/etc/ssh/ssh_config

下面这条命令保证的是当前linux系统中当前用户ssh登陆任何服务器的时候,系统保持的60秒keeplive请求。这个修改的是当前用户的home目录中ssh的配置信息

# echo "ServerAliveInterval 60" >> ~/.ssh/config

以上都是客户端是linux系统的配置,下面是配置服务器的ssh信息,但是这种配置回事的服务器上所有的用户都具有这种没60秒保持ssh连接的功能,可能会有一些安全问题。不支持

# echo "ClientAliveInterval 60">>/etc/ssh/sshd_config
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值