Git无法连接访问github【解决过程】
本文最后更新于:8 个月前
本地Window10上的git突然无法连接上github仓库了,报了ssh: connect to host github.com port 22: Connection timed out的错误。耗费了几个小时原因,终于找到原因(误删了某个文件),记录此次解决过程。
Git无法连接访问github
一、事情背景
大半个月没有使用github,今天更新技术博客的时候,先是发现之前使用的fluid主题出bug了(无法加载在线js和css资源),费了半天时间重装主题终于搞定fluid主题的bug之后。突然又发现Typora无法上传照片到github了,然后又转过头来解决照片的问题(把图床从github转到了阿里云的OSS数据服务)。然后又花了半天时间重新配置了主题,当最终在本地浏览到效果满意,准备部署到github时,git和github的连接又出问题了(简直心态崩了)。
二、问题描述
先是部署的时候,报错(如下)
1 |
|
提示:没有正确的访问权限或者仓库不存在。
为了检查是否存在其它问题,于是做了测试ssh连接和克隆仓库两项测试:结果都报了同样的错误
仓库是存在的,所以问题就出在无法访问github服务器。
逐一排除可能造成git无法访问github服务器的原因:
没有正确配置SSH key
重新生成配置SSH key了两次,发现问题并没有解决
22端口无法访问的原因
网上搜索最多的解决办法之一就是改端口,于是测试了更换443端口
Five hours later…
三、解决办法
瞎打误撞了半天,最后终于撞见了真正的问题原因,因为删除了.ssh目录下的known hosts
文件。
浪费了那么久,校园网也有很大的责任,wifi换成手机热点之后,才提示出hostname无法解析度原因,然后按照网上的经验,在C:\Windows\System32\drivers\etc\hosts
文件中增加了github.com的IP地址之后,才让known hosts文件浮出水面。
至于为什么删除known hosts
文件会导致无法连接,需要先了解一下ssh验证的机制,以及known hosts
文件发挥的作用
参考文章: SSH之known_hosts文件
有效解决的过程:
- wifi从校园网更换为手机热点(因为校园网为了安全可能会增加一些屏蔽操作,很谜~)
- 在
C:\Windows\System32\drivers\etc\hosts
文件中增加了github.com的IP地址,然后clone一个库,让ssh重新生成了known hosts
文件 - 重新连接成功
最终参考找到解决办法的文章: Git提示:ssh: Could not resolve hostname github.com: No address associated with hostname_在奋斗的大道的博客-CSDN博客