简单地记述了一下在使用 github 时遇到的 kex_exchange_identification 错误.
问题描述
毕业旅行的博客摸了很久, GitHub 也很有没有用过了, 然后在 push 的时候遇到了这个问题.
系统环境如下:
OS: MacOS
shell: zsh
具体报错:
git push
# output:
# kex_exchange_identification: Connection closed by remote host
解决方法
确认 github 的 ssh 配置没有问题.
使用
vim ~/.ssh/config
命令, 打开 ssh 的配置文件.添加
IdentityFile ~/.ssh/id_ed25519
至配置中, 而后配置变更为如下所示.
Host github.com
HostName github.com
User git
ProxyCommand nc -v -x 127.0.0.1:7890 %h %p
IdentityFile ~/.ssh/id_ed25519
其中, ProxyCommand
是指定的 github 代理, 有没有这个字段无所谓, 根据自己的配置即可. 而 id_ed25519
为与 github 的 ssh 配置相关联的文件, 这里笔者配置 ssh 时是按照 github 的教程走的, 所以文件就是 id_ed25519
.
最后, 可以使用 ssh -T [email protected]
测试一下, 效果拔群~
补充解决方案
当然, 这也有可能是代理失效的原因, 这就要把 ProxyCommand
这一行注释掉试试.
总之还是先使用 ssh -v [email protected]
调试一下, 根据具体的输出具体分析吧.
后续
还是搞不太清楚为啥会突然遇到这个问题, 大概是这段时间往 ssh 配置文件里面添加太多的 key 导致匹配规则混乱吧. 之后如果找到了更详细的问题原因再来更新咯.