写在前面
自己的测试环境:Ubuntu20.04
下面的操作都是和 git
有关,所以针对不同的操作系统(比如 Windows)也是一样的。
一、问题描述
在此之前使用git
执行 git push origin master
的命令时,能够正常执行,但是一段时间之后,再次执行该命令,出现了如下问题:
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.
二、解决方法
出现这种情况后, 自己重新生成了ssh key
,并且把id_rsa.pub
中的内容复制到了 github
的SSH keys
中,但是依旧没能实现想要的效果。根据当前终端的报错信息ssh: connect to host github.com port 22: Connection timed out
以及通过查阅其他资源,可能是当前的网络环境禁用了port 22
,因此切换到https
传输, 进行上传。
具体操作:
- 打开
- 修改
url = git@github.com:用户名/仓库名.git
修改为
url = https://用户名@github.com/用户名/仓库名.git
然后退出。
再次执行 push
.
这次可能会提示输入密码,需要输入自己的 token
码,才能成功。
如果不知道自己的token
码,需要登录自己的github --> setting --> Developer Settings --> Personal access tokens
进行设置。具体可以参考链接[4]。
参考链接
[1] 凌烟阁主5221. git可以add,pull, 不可以push的问题解决 [EB/OL]. https://www.jianshu.com/p/25933a149307, 2019-06-21/2024-01-21.
[2] tom_wong666. 【问题探讨】浏览器可以访问github项目,但是git clone失败 [EB/OL]. https://blog.csdn.net/tom_wong666/article/details/128961438, 2023-02-09/2024-01-21.
[3] 生信编程日常. github 访问ping不通的解决办法 [EB/OL]. https://www.jianshu.com/p/2da7fa4d7fba, 2020-08-16/2024-01-21.
[4] github访问令牌token的创建方法 [EB/OL]. https://zhuanlan.zhihu.com/p/501872439, 2023-05-06/2024-01-21.