有人可以帮我弄清楚这里发生了什么吗?
我一直在尝试使用我昨天能够访问的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
答案 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