解决kex_exchange_identification报错问题

解决kex_exchange_identification报错问题

1. 问题排查

在某一次写完博客使用hexo d部署的时候出现了kex_exchange_identification: Connection closed by remote host的错误,应该是使用SSH连接github的时候出现了错误。

可以使用以下命令验证是否是SSH出现了问题:

1
ssh -T git@github.com

果然还是出现了kex_exchange_identification: Connection closed by remote host的错误。

这可能是由于多种原因造成,下面是一些可能的解决方案:

  1. 检查SSH密钥:确保你的SSH密钥是正确的,并且已经添加到GitHub的账户设置中。你可以在GitHub的账户设置中查看和添加SSH密钥。
  2. 检查SSH配置文件:检查你的SSH配置文件(通常位于~/.ssh/config)是否正确配置。确保没有配置错误,例如错误的端口号或主机名。
  3. 更新SSH密钥:如果你的SSH密钥已经过期或已被替换,尝试更新SSH密钥并重新添加到GitHub账户中。
  4. 检查网络连接:确保你的网络连接正常,并且没有被防火墙或代理服务器阻止。尝试使用其他网络连接或检查防火墙设置。
  5. 更新Git版本:如果你使用的是较旧的Git版本,可能会遇到与SSH连接相关的问题。尝试更新Git到最新版本,并重新尝试连接。
  6. 检查SSH代理:如果你使用了SSH代理,确保代理设置正确,并且代理服务器正常运行。
  7. 重启SSH服务:在某些情况下,重启SSH服务可能有助于解决问题。
  8. 清除SSH缓存:有时候,SSH缓存可能导致连接问题。你可以尝试清除SSH缓存,并重新连接。

2. 解决方法

尝试了多种办法无果后,最后通过HTTPS端口使用SSH解决了问题

首先测试是否可以通过HTTPS端口使用SSH,请运行以下SSH命令:

1
2
3
$ ssh -T -p 443 git@ssh.github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.

如果可以,则覆盖 SSH 设置以强制任何与 GitHub.com 的连接通过该服务器和端口运行。要在 SSH 配置文件中设置此项,编辑文件~/.ssh/config

进入~/.ssh/文件夹:

1
cd ~/.ssh/

编辑config文件:

1
vim config

添加下面的代码:

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

按esc健退出编辑,并输入:wq保存并退出。

这时候可以通过再次连接到github.com测试配置是否生效:

1
2
3
$ ssh -T git@github.com
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.

切换到端口 443 后第一次与 GitHub 交互时,可能会收到一条警告消息,提示在 中未找到主机known_hosts,或者通过其他名称找到主机。

1
2
3
4
5
> The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
> This host key is known by the following other names/addresses:
> ~/.ssh/known_hosts:32: github.com
> Are you sure you want to continue connecting (yes/no/[fingerprint])?

如果 SSH 指纹与 GitHub 发布的指纹之一匹配,则可以输入“yes”。

这时候就可以使用hexo d命令部署新写的文章了。


转载:https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port

作者

zwx

发布于

2024-08-16

更新于

2024-08-16

许可协议

评论