我想用 ssh 连接我的共享主机。所以我在cpanel的ssh操作中生成了一个ssh密钥并对其进行了授权。然后我下载了私钥并将其放入 MacBook 的 ./ssh 文件夹中。我使用此代码连接我的主机。
ssh -p 2083 username@host IP
但是我收到了这个错误:
kex_exchange_identification: Connection closed by remote host
我该如何解决我的问题?
我办公桌上的一台小型电脑也遇到过类似的情况。我调试这个问题的方法是运行
sshd -t
,它在调试模式下运行 sshd 守护进程。该命令报告我的密钥的权限无效。然后我所要做的就是进入存储密钥的文件夹并发出 chmod 0600 <your_ssh_keys>
。
也许您运行的操作也会生成具有错误权限的内容。
在远程主机上使用 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
这导致我更改
MaxStartups
中的 /etc/ssh/sshd_config
设置。重新启动 ssh 服务后,一切都顺利了。
我遇到了同样的问题,这是在我在 ssh 配置文件中使用
ProxyCommand
时发生的。就我而言,Host
未正确定义,从而导致了相同的错误!
首先确认主机名是否正确。 cmd 或配置文件中的拼写错误会导致此错误。
然后,检查主机中的 sshd 日志,查找问题。
不太确定我的解决方案是否适合您。 对于我来说,我计划通过 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