我在我们的一台服务器上编译了 OpenSSH_6.6p1。我可以通过 SSH 登录到升级后的服务器。但是我无法从此连接到运行 OpenSSH_6.6p1 或 OpenSSH_5.8 的其他服务器。连接时出现如下错误。
Read from socket failed: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
在日志中的目标服务器上,我看到它如下。
sshd: fatal: Read from socket failed: Connection reset by peer [preauth]
Run Code Online (Sandbox Code Playgroud)
我尝试指定cipher_spec [ ssh -c aes128-ctr destination-server ] 如自 5.8p1(存档版本)以来的 ssh 'connection reset by peer' 问题中所述,并且能够连接。如何将 ssh 配置为默认使用密码?为什么这里需要密码?
这个问题听起来像是服务器端的错误。当客户端发送密码列表时,openssh 服务器可能希望能够在单个系统调用中读取该列表。
如果支持的密码列表长于一个数据包中可以传输的长度,则服务器在第一次调用中获得的字节数可能比预期的要少。服务器上的正确行为是执行另一个调用以获取其余字节。但是从出现的问题描述来看,当服务器没有立即获得完整的密码列表时,它会关闭连接。当来自客户端的下一个数据包到达时,服务器将向客户端发送连接重置。
将客户端配置为使用较短的密码列表可以解决该错误。openssh 客户端将在以下位置查找密码列表:
这两个配置文件分别是每个用户和系统范围的设置。Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
像 Eric 建议的那样使用应该可以正常工作。
归档时间: |
|
查看次数: |
86996 次 |
最近记录: |