错误代码:kex_exchange_identification:Connection closed by remote host
发现问题
今天晚上使用git连接了GitHub,使用ssh连接GitHub测试是否成功时,出现了上面的错误代码,百度谷歌找了一堆没有找到准确的解决方案,找到的都是Error: Permission denied (publickey),而这个问题网上解决方案倒是一大堆,然后就去GitHub的SSH故障排除,看了看还是没有远程主机关闭连接的解决方案,不过从“权限被拒绝”这个错误点知道了点处理思路。
排查问题
根据官网的操作先是排查公钥的MD5值
ssh-add -l -E md5
使用这个命令如果不是给你的一串MD5值的话,而是提示你“无法打开到您的身份验证代理的连接。”,那么就是你没有将密钥加载到SSH里,使用下面命令将其添加到SSH里
ssh-add ~/.ssh/id_rsa
然后我就按照输出的MD5值和GitHub上的对照,发现我的MD5值是正确的
然后使用官网的给出的命令自己进行排查
ssh -vT git@github.com
使用上面的命令排查期间发现,我电脑显示的github.com的IP地址竟然是13.250.177.223,最开始没发现,以为IP是真确的最后百度上看到github.com的IP网段好像是192.30.252~192.30.255的,然后我就懵了,那我这个IP是谁的,自己查了一下显示新加坡的,然后看到网上说的可能出现了流量劫持,然后看到了一个解决方案把自己的host文件添加一个192.30.253.112 github.com
添加后又使用上面的命令排查,这次出现的IP的确是192.30.253.112,但是到最后还是出现了远程主机关闭连接,然后真的是头大,一直搜百度一直找问题就是解决不了,一遍一遍的搞就是不成功,最后TM转念一想,WC,国外的IP为啥可以劫持我国内的?咦~ 不对,我自己TM的一直挂着香港的VPN,哎 我真的是太不冷静了
最后把VPN关了,重新搞了一边,不过出现了个密钥没有加入到SSH里,不过这个都是小问题,最后嘿嘿😂,成功了!终于不负我搞了将近俩小时😭
反思
有些偏门的问题问了百度也是白问,总结一下处理问题还是要有一个清晰的思路,搞一遍不行搞两遍还不行继续多搞几遍,你会发现你离真正的解决方案越来越远😂,重要的还是详细仔细不马虎的读日志或看处理流程,就这个问题而言,我如果最开始不挂VPN就不会这么多事,不过既然出现了肯定是要对这个问题有一个学习态度
本次把问题记录下来可以给有同样问题的人参考参考,毕竟百度搜出来的解决方案比较繁杂
以上均为个人问题处理笔记,如有错误请指正,共同学习,谢谢。