解决git连接超时问题

最近使用git连接github时一直报下面这个错:

git 连接远程仓库有两种协议:ssh协议https协议

根据英文可以看出,ssh协议连接超时,我们切换成 https协议连接github。

移除掉远程仓库的配置

1
$ git remote rm origin

重新添加新的远程仓库,以https的形式:

1
git remote add origin https://github.com/wotzc/wotzc.github.io.git

https的地址其实就是github上项目对应的地址,如下图:

再次尝试push代码,可以看到已经成功。

但是我们在部署hexo d的时候输入账号密码后还是会报错,错误如下:

1
Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead [duplicate]

因为2021年8月13日之后密码身份验证由 GitHub 禁用,不再支持。创建并使用个人访问令牌PAT而不是密码。

此消息意味着您使用密码而不是个人访问令牌通过 HTTPS 访问 GitHub,这已不再允许。GitHub 禁用了密码身份验证,因为人们经常会意外泄露密码,虽然个人访问令牌可以限制损坏,但密码不能。

如果您没有在提示时明确输入密码,那么您很可能有一个凭据管理器来保存您的密码,并在不提示您的情况下发送密码。

所以我们需要使用个人访问令牌进行身份验证,步骤如下:

  1. 在 Github 上创建个人访问令牌

    From your Github account, go to Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fillup the form => click Generate token => Copy the generated Token, it will be something like ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta

  2. 对于Windows操作系统

    控制面板中访问凭证管理器,选择Windows凭据,找到git:https://github.com,点击编辑,把上一步复制的密码粘贴到密码处。

  3. 对于Mac操作系统

Click on the Spotlight icon (magnifying glass) on the right side of the menu bar. Type Keychain access then press the Enter key to launch the app => In Keychain Access, search for => Find the internet password entry for => Edit or delete the entry accordingly => You are donegithub.com

现在将给定记录存入计算机以记住令牌:

1
$ git config --global credential.helper cache

如果在进行hexo d操作时,还是提示下面这种错误:

我们就修改根目录的_config.yml文件,把repo修改为https连接的地址

再次hexo d成功!