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正确。
解决办法
这里考虑到只是临时遇到问题,因此直接修改host文件解决,直接增加以下解析记录。
1 | 20.205.243.166 github.com |
当然除此之外也可以设置终端走代理服务解决。
写在最后
为了正常访问GitHub及谷歌等,总是问题问题,权当练习技术吧。