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
2
3
4
5
6
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
......

image-20220526225644489

提示:没有正确的访问权限或者仓库不存在。

为了检查是否存在其它问题,于是做了测试ssh连接克隆仓库两项测试:结果都报了同样的错误

image-20220526230541377

仓库是存在的,所以问题就出在无法访问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文件浮出水面。

image-20220527000546824

至于为什么删除known hosts文件会导致无法连接,需要先了解一下ssh验证的机制,以及known hosts文件发挥的作用

image-20220527000640222

参考文章: SSH之known_hosts文件

有效解决的过程:

  1. wifi从校园网更换为手机热点(因为校园网为了安全可能会增加一些屏蔽操作,很谜~)
  2. C:\Windows\System32\drivers\etc\hosts文件中增加了github.com的IP地址,然后clone一个库,让ssh重新生成了known hosts文件
  3. 重新连接成功

最终参考找到解决办法的文章: Git提示:ssh: Could not resolve hostname github.com: No address associated with hostname_在奋斗的大道的博客-CSDN博客


Git无法连接访问github【解决过程】
http://timegogo.top/2022/05/27/Git/Git无法连接访问github【解决过程】/
作者
丘智聪
发布于
2022年5月27日
更新于
2023年7月16日
许可协议