kex_exchange_identification:远程主机关闭连接

14

我想通过ssh连接我的共享主机。因此,我在cpanel的ssh操作中生成了一个ssh密钥并进行了授权。然后,我下载了私钥并将其放入了我的MacBook的./ssh文件夹中。我使用以下代码来连接我的主机。

ssh -p 2083  username@host IP

但我遇到了这个错误:

kex_exchange_identification: Connection closed by remote host

我该如何解决我的问题?


可能有很多原因。其中一种可能是虚拟机已关闭,在AWS或Azure中启用了自动关闭功能时,这很容易发生。 - james.garriss
6个回答

11
我遇到了一个类似的问题,我的桌面上有一台小型计算机。为了解决这个问题,我运行了sshd -t命令,这将以调试模式运行sshd守护进程。该命令报告说我的密钥权限无效。然后,我只需要进入存储密钥的文件夹并执行chmod 0600 <your_ssh_keys>命令即可。也许你运行的操作也会生成错误权限的内容。

2

当我使用远程主机的docker命令时,我遇到了这个错误

docker -H ssh://user@server compose up

经过一番探索,我在我的远程服务器的认证日志中(/var/log/auth.log)发现了以下内容:

Aug  8 14:51:46 user sshd[1341]: error: beginning MaxStartups throttling
Aug  8 14:51:46 user sshd[1341]: drop connection #10 from [some_ip]:32992 on [some_ip]:22 past MaxStartups

这促使我更改了/etc/ssh/sshd_config中的MaxStartups设置。重新启动SSH服务后,一切都像魔术般地运作。

0
在我的情况下,主机也是原因 - 我使用gitea作为git服务器,.ssh文件夹和其中的所有证书需要对所有人不可访问。
这完全有道理,但我希望错误消息能给出更好的提示!

0
不太确定我的解决方案是否适用于你的情况。 对我来说,我计划通过SSH连接到GitHub。出现了相同的错误。 我在https://github.com/orgs/community/discussions/55269中找到了解决方案。 我的配置文件内容如下。
#Windows
ProxyCommand "C:\APP\Git\mingw64\bin\connect" -S 127.0.0.1:51837 -a none %h %p

#MacOS
#ProxyCommand nc -v -x 127.0.0.1:51837 %h %p

Host github.com
  User git
  Port 443
  Hostname ssh.github.com
  # change the path here
  IdentityFile "C:\Users\Your_User_Name\.ssh\id_rsa"
  TCPKeepAlive yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  # change the path here
  IdentityFile "C:\Users\Your_User_Name\.ssh\id_rsa"
  TCPKeepAlive yes

0
首先,确保主机名是否正确。命令或配置文件中的拼写错误会导致此错误。
然后,在主机上检查sshd日志,以找出问题所在。

0

我曾经遇到过同样的问题,原因是我在ssh配置文件中使用了ProxyCommand。在我的情况下,Host没有正确定义,导致了相同的错误!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接