我在 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
(服务器端)中。如果是这样,那么罪魁祸首肯定是fail2ban
or 。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 中找到日志
我可以猜测,由于连接在客户端发送版本号后立即断开,服务器以某种方式威胁客户端不兼容。