我已经能够使用 ssh username@publicip 登录到我的开发箱(位于我的家庭网络中)一段时间了,但是最近由于以下错误,这变得不可能了
ssh_exchange_identification:读取:对等方重置连接
奇怪的是,如果我使用网络地址而不是公共地址,我就能毫无问题地连接。
我的同事也能够通过 SSH 连接到公共 IP 地址,而且没有任何问题。
这可能是什么原因造成的?我该如何解决?我快速谷歌了一下,它建议我查看我的 etc/hosts.deny 文件,但我没有这个文件。
谢谢
答案1
如果您使用 rsa 密钥验证,您可能需要确保 authorized_keys 文件最近没有在开发服务器上被修改。
如果其他方法都失败了,您可以在调试模式下运行 sshd sshd -d
,然后从客户端终端进行 ssh 连接。这将打印出大量信息。在输出中搜索错误/失败。
去做这个:
sudo service sshd stop
# 不用担心,您的活动 ssh 连接不会被终止,只有新连接会受到影响。/usr/sbin/sshd -d
... 输出调试信息...从客户端终端(您的工作站),使用 -v 选项(详细)通过 ssh 连接到开发服务器:
ssh -v [email protected]
仔细阅读输出中的调试信息
sshd -d
和 ssh 客户端详细输出-- 修复问题 --
- Ctrl-C 退出
sshd -d
“退出调试。 sudo service sshd start
# 重新启动 sshd 守护进程
答案2
你能测试一下主机的 ping 吗?它可能解析不正确。如果是这种情况,你可能需要检查 DNS 上的 TTL,或者手动解析它,在 /etc/hosts 中设置以下行,其中你的 IP 地址是 xxxx,你的主机是 yourhost.com
x.x.x.x yourhost.com