在全新安装的 Ubuntu 14.04(machine1)上,我拥有具有完全默认配置的 openssh-server。
当从 LAN 上的 machine2 连接时,使用空的 ~/.ssh,我从服务器获得以下调试输出(以 /usr/sbin/sshd -p 22 -D -d -e 形式运行):http://pastebin.com/WeHGzsUM相关内容可能为:
debug1: permanently_set_uid: 118/65534 [preauth]
debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519 [preauth]
debug1: SSH2_MSG_KEXINIT sent [preauth]
Read from socket failed: Connection reset by peer [preauth]
debug1: do_cleanup [preauth]
...
当使用在许多服务器上运行的常规 ~/.ssh 从 machine2 连接时,我在 machine1 上收到以下调试输出:http://pastebin.com/uxKfAYSL
在这两种情况下,在 machine2 上,客户端都会报告:http://pastebin.com/dTp4mNne直到最后一行为止,这对我来说看起来很正常:
ssh_exchange_identification: read: Connection reset by peer
在服务器和客户端上,ssh客户端的版本是:
OpenSSH_6.6p1 Ubuntu-2ubuntu1, OpenSSL 1.0.1 14 Mar 2012
并且服务器有版本:
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014
远程失败的完全相同的客户端命令在服务器 machine1 上可以完美运行,因此这不是帐户问题。
之前,在我升级 machine2 上的 ssh 客户端之前,在显示此调试输出后,ssh 会无限期阻塞http://pastebin.com/JSX6r7Yp在服务器上,我会在 auth.log 中看到以下内容
Jun 19 22:27:47 lemur sshd[6491]: Did not receive identification string from 192.168.1.12
更新:
事实证明(感谢 @chaos)这与 ssh 无关。我设法在服务器机器上设置了一个错误的网络掩码 255.255.255.255 而不是 255.255.255.0。这导致从 LAN 路由入站流量出现问题,但不会导致从路由器路由入站流量出现问题。
答案1
事实证明(感谢 @chaos)这与 ssh 无关。我设法在服务器机器上设置了一个错误的网络掩码 255.255.255.255 而不是 255.255.255.0。这导致从 LAN 路由入站流量出现问题,但不会导致从路由器路由入站流量出现问题。
答案2
尝试在服务器和客户端上重新生成主机密钥:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
-error 的Did not receive identification string
意思是服务器等待客户端的识别字符串但始终得不到。
-errorConnection reset by peer
表示在 TCP 层,服务器切断连接并且不发送包ACK
。
这两个错误都可能表明存在连接问题。请尝试为服务器使用另一个交换机端口。在您的客户端日志中,我们还看到客户端也从未获取服务器的标识字符串,它应该是这样的:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.3