在Linux系统的ECS实例执行SSH命令时,提示“fatal: mm_request_send: write: Broken pipe”错误怎么办?

本文介绍在Linux系统的ECS实例中执行SSH命令时,提示“fatal: mm_request_send: write: Broken pipe”错误的解决方案。

问题现象

在Linux系统的ECS实例中执行SSH命令时,提示“fatal: mm_request_send: write: Broken pipe”错误。

问题原因

该问题可能是udev-fall等病毒导致SSH服务运行异常。

解决方案

您可以通过临时处理方法(终止病毒进程)或彻底解决方法(使用快照回滚云盘方式)解决该问题。

方法一:临时处理方法

本文以udev-fall病毒为例,临时恢复SSH服务的正常运行。

  1. 通过VNC连接Linux实例。

    具体操作,请参见通过密码认证登录Linux实例

  2. 执行如下命令,查看udev-fall病毒进程信息,并记录该进程ID。

    ps aux | grep udev-fall
  3. 执行如下命令,结束udev-fall病毒进程。

    kill -9 [$PID]    # [$PID]表示上一步获取的udev-fall病毒进程ID。
  4. 执行如下命令,取消udev-fall病毒程序的自动运行设置。

    chkconfig udev-fall off
  5. 执行如下命令,删除所有udev-fall病毒程序相关指令和启动配置。

    for i in ` find / -name "udev-fall"`;
    do echo '' > $i && rm -rf $i;
    done
  6. 执行如下命令,重启SSH服务。

    systemctl restart sshd.service

方法二:彻底解决方法

由于无法明确病毒或者恶意入侵者是否对系统做过其他篡改,是否隐藏了其他病毒文件,因此为了服务器的长期稳定运行,建议您通过回滚云盘快照的方式,将服务器恢复到正常状态。具体操作,请参见使用快照回滚云盘

重要

回滚云盘是不可逆操作,从快照的创建日期到回滚云盘时这段时间内的数据会丢失。为避免误操作,建议您在回滚前为云盘创建一份快照备份数据。