当我尝试通过 SSH 连接到服务器时,出现以下错误,
[root@oneeighty ~]# ssh -vvv -p 443 [email protected]
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xxx.xxx.xxx [IP] port 443.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: loaded 3 keys
ssh_exchange_identification: read: Connection reset by peer
我已经检查了服务器和客户端上的 SSH 配置,没有问题。
重新启动服务器上的 SSH 服务,然后重新启动服务器/客户端,但问题仍未解决。
答案1
这可能是由多种因素造成的。
您可以快速尝试以下几件事,
- 在 /etc/hosts.deny 中查找类似以下条目
sshd: ALL
或许,
sshd: ALL
添加/etc/hosts.allow
您的 SSHD 的 HostKey 可能已损坏。它们位于 /etc/ssh/ 目录中。您可以删除它们并重新启动 sshd,它会重新生成它们。如果出现错误,请使用以下命令
$ ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key $ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key $ ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key $ /etc/init.d/sshd start
答案2
调试中的下一行应如下所示:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7
您已在 StackOverflow 上确认您正在使用来自外部 IP 地址的 NATing/端口转发。您还验证了可以从本地框 ssh 到其自身。由于本地 ssh 到端口 443 有效,因此您需要验证端口映射是否有效。
尝试:
- 从同一子网中的另一个框中通过 SSH 连接
- 运行
iptables -L
并检查端口 443 是否打开或 INPUT 和 OUTPUT 是否设置为 ACCEPT - 运行
tcpdump -A -s 0 port 443
,然后尝试 ssh 到外部 IP。您应该看到数据通过路由器的源地址到达
答案3
顺便说一句,我在 AWS 上运行的是 Ubuntu 14.04。通过他们的 Java Web 客户端进行 SSH 连接并运行,问题得到了解决sudo service apache2 start
。我只想让我的网站恢复正常,但它也修复了 SSH 访问。不知道为什么,但我没有抱怨。
答案4
我今天遇到了类似的问题,突然间,对虚拟机的 ssh 访问被拒绝,并显示相同的消息。ssh -v(在客户端)和 sshd -d(在服务器上)没有多大帮助。我遇到的问题是由于防火墙/iptable 设置的更改而引起的,我为演示 LAMP 堆栈的使用而更改了防火墙/iptable 设置。
我用了系统配置防火墙-tui启用防火墙并从那里仅选择 httpd,从而阻止除 httpd 之外的所有其他服务。
因此,为了解决这个问题,请添加权限sshd经过
- 更新 iptable conf 设置或
- 从 system-config-firewall-tui 中选择 sshd 或者
- 禁用防火墙或
- 停止 iptable 服务(rhel6,也从 chkconfig 中删除它) service iptables stop
ssh 现在工作得很好了 !!!