SSH连接错误:ssh_exchange_identification:读取:对等连接重置


25

当我尝试通过SSH连接到服务器时,出现以下错误,

[root@oneeighty ~]# ssh -vvv -p 443 root@xxx.xxx.xxx
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服务,然后重新启动服务器/客户端,但问题未解决。


您可以通过防火墙用户界面允许ssh连接(某些提供商允许),或者如果您有其他替代的登录方法(例如digitalocean提供控制台按钮),则可以在命令sudo ufw allow ssh sudo ufw allow 22
BSB

Answers:


26

这可能是许多事情的结果。

您可以快速尝试的一些方法如下:

  • 在/etc/hosts.deny中查找任何类似的条目 sshd: ALL
  • 也许,添加sshd: ALL/etc/hosts.allow

  • 您的SSHD的HostKeys可能已损坏。它们位于/ 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
    

在/etc/hosts.deny文件和/etc/hosts.allow文件中,所有行均带有注释。
Senthil G 2012年

1
请添加sshd: ALL到hosts.deny以检查是否有帮助。
vagarwal 2012年

2

调试的下一行应如下所示:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7

您已在StackOverflow上确认您正在使用来自外部IP地址的NAT /端口转发。您还验证了可以从本地框切换到自身。由于在本地到端口443 sshing,因此您需要验证端口映射是否正常。

尝试:

  1. 从同一子网中的另一个盒子进行SSH
  2. 运行iptables -L并检查端口443是否打开或INPUT和OUTPUT设置为ACCEPT
  3. 运行tcpdump -A -s 0 port 443,然后尝试将其设置为外部IP。您应该看到数据与路由器的源地址一起到达

2

FWIW,我在AWS上运行Ubuntu 14.04。通过其Java Web客户端SSH并运行可以解决此问题sudo service apache2 start。我只是希望备份我的网站,但它也修复了SSH访问。不知道为什么,但我没有抱怨。


同样的问题在这里。我的会话无故无响应,我无法通过腻子重新连接。使用Web客户端做了任何神奇的事情,使我通过腻子的连接再次起作用。
AndrewK

谢谢,我不知道如何,但确实有帮助。*** aws
Siarhey Uchukhlebau

1

检查您要连接的服务器上的allowed.hosts,以及它正在运行的所有iptables规则。


1

问题已解决。
问题出在我们网络上的负载均衡器上。重新启动负载均衡器后,该问题已解决。


1

我今天遇到了类似的问题,因为突然间以相同的消息拒绝对虚拟机的ssh访问。ssh -v(在客户端)和sshd -d(在服务器)没有太大帮助。我的问题是由于更改了防火墙/ iptable设置而开始出现的,我对LAMP堆栈使用进行了一些演示。

我使用system-config-firewall-tui启用了防火墙,并从那里仅选择了httpd,该HTTPd阻止了除httpd之外的所有其他服务。

因此,作为解决方案,可以通过以下方式向sshd添加权限

  • 更新iptable conf设置或
  • 从system-config-firewall-tui中选择sshd或
  • 禁用防火墙或
  • 停止iptable服务(rhel6,也将其从chkconfig中删除)服务iptables stop

ssh现在可以正常工作了!



0

解决问题的方法是,我进入主机并运行了一些命令

须藤mkdir / var / run / sshd

须藤chmod 755 -R / var / run / sshd

sudo服务ssh重新启动

之后,我已连接到机器。


-3

首先清除openssh-*(openssh服务器和openssh客户端)

apt-get --purge remove openssh-*

删除/home/username/.ssh目录

rm -rf /home/username/.ssh 

然后安装您的openssh-server和openssh-client

apt-get install openssh-server openssh-client

3
不,甚至没有接近,OP的回答说明了问题所在。您的回答特定于使用apt的发行版,而OP使用的是RHEL。删除并重新安装软件包几乎永远不是解决方案。
user9517支持GoFundMonica 2014年

您是在本地还是远程服务器上完成所有这些工作?
乔纳森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.