ssh_exchange_identification:读取:连接被对等方重置

ssh_exchange_identification:读取:连接被对等方重置

我在 OS X 上尝试 ssh 进入 ubuntu 12.04 服务器。我能够通过 SSH 登录——直到突然东西停止工作。我在网上阅读过使用 来-v调试它。输出如下所示。如果我 ssh 到另一个盒子,然后从该盒子 ssh 到服务器,我就可以登录。我不知道如何调试这个问题,但想学习。

$ ssh -v me@server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to server [IP] port 22.
debug1: Connection established.
debug1: identity file /Users/me/.ssh/id_rsa type 1
debug1: identity file /Users/me/.ssh/id_rsa-cert type -1
debug1: identity file /Users/me/.ssh/id_dsa type -1
debug1: identity file /Users/me/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Connection reset by peer

到目前为止(根据留言板的建议)我已经寻找了主持人否认文件——但我的机器上没有这样的文件。

$ cat /etc/hosts.deny 
cat: /etc/hosts.deny: No such file or directory

我在客户端计算机上有管理员访问权限,但在服务器上没有。

答案1

突然的变化可能是服务器配置上的配置文件发生变化的结果sshd,但您指出没有管理员权限就无法检查或更改它。如果无法(及时)联系到服务器管理员,您仍然可以尝试以下操作。

sshd您的日志仅指示本地版本字符串,您应该检查服务器和中间机器上运行的版本。

如果这些版本不同(尤其是本地计算机和服务器之间的版本,中间计算机和服务器之间的版本较小),则可能存在一些协商不兼容的情况,这以前发生过ssh。过去的解决方案是在命令行(ssh -c aes256-ctr等)或/etc/ssh/ssh_config.

您应该在调试信息(通过中间连接到服务器)中查找适当的值作为-c/ Ciphers-o HostKeyAlgorithms/HostKeyAlgorithms-m/MACs命令行的参数。ssh_config 更改。

我自己已经有一段时间没有遇到这个问题了,但是当我这样做时,IIRC 足以手动强制密码和主机密钥算法设置,之后我可以更新服务器的sshd版本,问题就消失了。

答案2

您可能已被fail2ban或禁止denyhosts。在这种情况下(并且还要检查它),如果您不想打扰服务器提供商的帮助,则需要从另一个 IP 地址登录到您的服务器:例如另一个服务器,或朋友的家庭连接,或wifi 热点,或使用 SSH 和 TOR。

登录后,检查您的 IP 地址是否确实出现在/etc/hosts.deny(服务器端)中。如果是这样,那么罪魁祸首肯定是fail2banor 。denyhosts

查看答案这个问题denyhosts了解防止连续阻止您的地址的程序。要fail2ban查找您的 ipiptables -L --line-number并使用 解封您的 ip iptables -D <chain> <chain number>,请查看详细信息如何锻造

您可能需要将您的 IP 地址添加到白fail2ban名单denyhosts(分别为/etc/fail2ban/jail.conf、行ignoreip/var/lib/denyhosts/allowed-hosts,如果需要则创建它(但请注意,您的发行版上的路径可能不同))以防止问题再次发生。

答案3

在主机服务器上,删除位于此处的 ssh pub.key:~/.ssh/authorized_keys对于您的 mac。然后,tail -f /var/log/auth.log当您打开另一个终端并再次尝试 ssh 时ssh -v me@server。如果系统提示您输入密码,则表明您的 ssh 密钥有问题。如果您仍然看到“ssh_exchange_identification:read:Connection Reset by Peer”响应,那么您应该能够在尝试失败后从“/var/log/auth.log”文件中的日志条目确定问题所在登录。

如果您仍然无法连接,请在此处发布身份验证文件中记录的条目,我将修改我的答案。

答案4

您的日志意味着服务器端断开了连接。要找出原因,您应该查阅服务器端日志,它们应该显示断开连接的原因。您应该几乎总是能够在 /var/log/messages 中找到日志

我可以猜测,由于连接在客户端发送版本号后立即断开,服务器以某种方式威胁客户端不兼容。

相关内容