如何解决“ ssh_exchange_identification:读取:对等连接重置”错误?


21

我无法使用计算机通过ssh连接到服务器,但是可以使用termius应用程序通过手机连接到该服务器。我已经检查/etc/hosts.allow/etc/hosts.deny和我的iptables,我也ALSE搜索谷歌,似乎没有答案符合这一问题。我不知道如何解决,这是ssh -v 183.17.228.80输出

debug1: Connecting to 183.17.228.80 [183.17.228.80] port 22.
debug1: Connection established.=======================   
debug1: permanently_set_uid: 0/0   
debug1: SELinux support disabled  
debug1: key_load_public: No such file or directory    
debug1: identity file /root/.ssh/id_rsa type -1    
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_rsa-cert type -1      
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa-cert type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa type -1  
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa-cert type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519 type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519-cert type -1  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2   
ssh_exchange_identification: read: Connection reset by peer

我可以ping通这台服务器,这里是telnet

telnet 183.17.228.29 22  
Trying 183.17.228.29...  
Connected to 183.17.228.29.  
Escape character is '^]'.                                                                 
Connection closed by foreign host.

可能想检查您是否已安装DenyHosts,DenyHosts有其自己的allow和deny hosts文件。
Robby1212

您确定PC上运行的软件与所有SSH加密模式兼容吗?
塔拉卡·德文达

正如我提到的,我已经检查了主机文件,而不是DenyHosts
user3054879

我不确定,加密算法可能不同,但是我的客户端是腻子....但是我可以在IOS上通过终端将其SSH到同一台服务器
user3054879

从密钥文件的路径中,我想您的连接方式为root。通常不启用此功能。查看您的sshd配置。ssh -vvv可能会给您更多信息。
ridgy '17

Answers:


14

只需重新启动要ssh的服务器即可。它对我有用,以前我遇到过同样的问题。


1
找不到根本原因,但是重新启动对我有用。
Raghavendra N

2
ssh到AWS上的免费服务器时遇到了相同的问题。这是由于服务器耗尽了内存造成的。重新启动工程。
利昂

@thistleknot,重新启动对我有效,并且是快速简便的修复方法。没什么可怕的。实际上,我不知道是什么引起了问题,但是重新启动确实可以解决问题。
CousinCocaine19年

如果重新启动有效,则可能不是配置问题,而是资源问题。也许增加ssh的优先级也许可以解决问题。
JohnRos

1
重新启动服务器是一个非常非常糟糕的建议。
侯赛因瓦塔尼

8

这实际上意味着服务器将您的IP列入了黑名单。尝试将您的IP地址列入白名单以便能够登录。您可以查看/ etc / hosts列表,以查看服务器的IP地址是否已更改。


7
确实不一定是这样。
sempaiscuba

2
这对我来说似乎是正确的。我发现我的Cloudways服务器已将我的家庭IP列入黑名单,因此需要手动将其列入白名单。
瑞安(Ryan)

几个小时后问题消失了,我不知道为什么,但是我不需要重新启动。
塞勒姆F

感谢您的评论:“ Cloudways服务器已将我的家庭IP列入黑名单” –这刚发生在我们身上-手动列入了白名单,一切顺利。
朱尔斯·马修斯

1

当您尝试对服务器进行身份验证的尝试失败次数有限,并且客户端上的ssh密钥过多(超过MaxAuthTries的值)时,就会发生上述错误

您可以尝试增加MaxAuthTries的值并重新启动sshd守护程序。或者,您可以限制~/.ssh目录中密钥的数量,并使用子目录和~/.ssh/config文件来定义每个主机/主机组的密钥


我已经尝试过了,但是失败了,实际上,我几乎尝试了可以​​在互联网上找到的每种方法,我想关键是加密协商算法,但是我没有办法解决它
user3054879

2
你尝试了什么?请更新您的问题
Romeo Ninov


1

我也发生了同样的事情,并且需要ssh -v'ip addr',然后我看到我需要接受证书。也可能是ACL或路由规则阻止腻子:例如-

Putty客户端具有带有防火墙的10.xxx addr,该防火墙阻止企业网络与DMZ主机进行通信,但是您的手机处于58.xxx,无论公用IP地址可以与您尝试访问的dmz主机进行通信。

因此,当您尝试再次连接时,我将查看ssh -v信息,查看是否可以收集任何信息,然后检查是否存在阻止您进入防火墙或路由器级别而不是服务器级别的服务器的规则。服务器本身上的denyhosts文件。


0

控制台冻结时,我正在使用蜂窝热点连接到Web,无法再连接 ssh_exchange_identification: read: Connection reset by peer

我试图重设SRV,但无济于事

只有当我更改网络连接(更改为其他蜂窝网络上的热点)时,我才能再次连接。

注意:我仍然可以使用旧的连接来连接到另一个AWS上的SRV,这很奇怪...


0

要解决此问题,请按照下列步骤操作:

  1. 从服务器在线终端重新启动服务器。

如果这样不起作用,

  1. 编辑档案 $HOME/.ssh/known_hosts
  2. 删除此文件中的所有内容,当该文件将重新连接到ssh的任何服务器时,则必须重新接受连接。

1
-1为完全删除known_hosts。最好编辑有问题的此特定主机(尽管我怀疑这会有所帮助)。
大卫·佛斯特


0

可能有很多原因,但最可能的原因之一可能是(在我的情况下是)防火墙不允许ssh / port 22

您可以通过用户界面允许ssh连接(某些提供者允许),或者如果您有其他登录方法(例如digitalocean提供控制台按钮),则可以在以下命令下运行

sudo ufw allow ssh
sudo ufw allow 22

0

看起来服务器上的ssh守护程序已挂起。您确定它正在运行吗?当您远程登录到ssh时,您必须看到一个签名。就像是:

telnet unixhow.com 22
Trying 35.228.26.20...
Connected to unixhow.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1

我从您的输出中看到的是ssh守护程序在服务器端未响应。我建议通过IP-KVM(或以其他方式)连接到远程计算机并重新启动sshd。


0

这可能是因为您的ubuntu上没有运行openssh服务器。您可以运行以下命令来检查openssh服务器的状态。

ubuntu@ubuntu:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-20 11:52:16 GMT; 5min ago
  Process: 1034 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 1058 (sshd)
    Tasks: 1
   Memory: 5.1M
      CPU: 122ms
   CGroup: /system.slice/ssh.service
           └─1058 /usr/sbin/sshd -D

Mar 20 11:52:15 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on 0.0.0.0 port 22.
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on :: port 22.
Mar 20 11:52:16 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
Mar 20 11:52:24 ubuntu sshd[1131]: Connection closed by 10.0.2.2 port 60566 [preauth]
Mar 20 11:53:59 ubuntu sshd[1135]: Accepted password for ubuntu from 10.0.2.2 port 60654 ssh2
Mar 20 11:53:59 ubuntu sshd[1135]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 20 11:57:48 ubuntu sshd[1238]: Accepted password for ubuntu from 10.0.2.2 port 61124 ssh2
Mar 20 11:57:48 ubuntu sshd[1238]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

如果状态不是active (running),则可能要安装和/或启动openssh-server。您可以使用下面显示的命令进行操作。

sudo apt update
sudo apt install openssh-server

0

我遇到了同样的问题,但是在重新启动sshd守护程序之后,我可以连接到主机了。

sudo systemctl restart sshd && systemctl status sshd

在您增加MaxAuthTries参数之前,这只是一个临时解决方法。


0

我的解决方案是将我的本地IP地址添加到/etc/hosts.allow

sshd:192.168.10.88:allow

这对我有用。


-2
  1. 检查服务器中已安装和正在运行的sshd。
  2. 确保守护程序已安装并启动。您必须能够“ man sshd”。我认为它所在的包是open-ssl,您将需要启动守护程序(并在不需要时将其停止。)。

当然,我已经安装了sshd,正如我提到的那样,我可以通过iphone上的终端将ssh SSH到同一台服务器...但是油灰失败了
user3054879
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.