SSH登录GitHub失败

最近有事呆在湖北,访问GitHub时遇到问题-SSH登录GitHub在确定公钥配置正常的情况下总是登录失败,最后发现跟DNS污染有关。这里记录下问题及解决方案。

网络环境

  • 湖北省咸宁市电信

测试脚本

在git相关操作时提示输入git@github.com密码即登录失败,测试登录状态时可以使用以下脚本。

1
ssh -vT git@github.com

执行发现公钥验证失败,首先怀疑的是公钥没有在GitHub上配置正确,在确定正确后还是登录失败,那么大概率就是DNS污染了。

本地尝试将终端切换到代理模式下,发现登录成功。。。于是问题进一步实锤。

分析

这里我使用dig命令在默认DNS Server下及谷歌DNS Server[8.8.8.8]发现默认返回的域名解析A记录223.75.236.241根本不是GitHub的WEB服务地址,而正确的IP地址20.205.243.166直接浏览器访问会发现跳转GitHub正确。

https://static.1991421.cn/2022/2022-10-02-233445.png

解决办法

这里考虑到只是临时遇到问题,因此直接修改host文件解决,直接增加以下解析记录。

1
20.205.243.166 github.com

当然除此之外也可以设置终端走代理服务解决。

写在最后

为了正常访问GitHub及谷歌等,总是问题问题,权当练习技术吧。