SSH登录AWS EC2错误:packet_write_wait:连接到x.x.x.x端口22:管道损坏

时间:2018-02-09 19:22:53

标签: amazon-web-services amazon-ec2 ssh

有人可以帮我弄清楚这里发生了什么吗?

我一直在尝试使用我昨天能够访问的EC2实例,但我一直收到此错误:“packet_write_wait:连接到x.x.x.x端口22:管道损坏。”我的调试输出的最后几行是这样的:

debug3: send packet: type 90
debug1: Requesting no-more-sessions@openssh.com
debug3: send packet: type 80
debug1: Entering interactive session.
debug1: pledge: network
debug3: send packet: type 1
packet_write_wait: Connection to x.x.x.x port 22: Broken pipe

我想知道我昨天是否没有正确关闭连接,这与它有关。无论哪种方式,我现在都无法登录这个EC2实例,我想知道如何解决这个问题。我已经尝试将其添加到我的〜/ .ssh / config:

Host *
    ServerAliveInterval 30
    ServerAliveCountMax 5

3 个答案:

答案 0 :(得分:1)

您可以尝试将其添加到~/.ssh/config

 Host *
  TCPKeepAlive yes
  ServerAliveInterval 120
  

TCPKeepAlive - 指定系统是否应发送TCP keepalive   消息到另一边。如果他们被发送,死亡的连接   或其中一台机器的崩溃将被正确注意到。然而,   这意味着如果路由暂时关闭,连接将会死亡,   有些人觉得很烦(默认是'是')。

     

ServerAliveInterval - 设置超时间隔(以秒为单位)   如果没有从服务器收到数据,ssh(1)将发送一个   消息通过加密通道请求来自的响应   服务器。默认值为0,表示不会显示这些消息   发送到服务器。

同时尝试将其添加到/etc/ssh/ssh_config

答案 1 :(得分:0)

我遇到了同样的问题,并花了几个小时进行故障排除。

如果您在NAT期间尝试从VMware VM进行SSH,则SSH可能由于QoS标志而被丢弃。请参阅这篇文章:https://communities.vmware.com/thread/590825

对我来说,解决方法是将以下内容添加到我的客户端ssh配置中(例如〜/ .ssh / config):

Host *
     IPQoS lowdelay throughput

答案 2 :(得分:0)

通常是在/ etc / ssh / sshd_config中设置错误的ChrootDirectory。该文件夹应包含所有根实用程序,即它必须具有/ bin / bash和所有必需的库。就我而言,我为用户猜测设置目录,如下所示。删除此类设置后,我就可以在用户的​​猜测下进行验证了。

Match user guess
  ChrootDirectory /home/guess