在昨天,也就是2021年的8月13日,GitHub正式取消了使用账号密码token验证访问GitHub API。

在这之后,假设您一直使用的是账号密码认证,则push操作或者针对私有项目的pull操作时会报错。

1
2
3
4
5
6
7
8
# 假设当前项目是个私有项目
git pull
Username for 'https://github.com': zhdbest
# 下面输入的密码是你GitHub账号的密码
Password for 'https://zhdbest@github.com':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: 无法访问 'https://github.com/zhdbest/hugo-blog.git/':The requested URL returned error: 403

此时,我们需要去GitHub上生成一个token,路径为:“Settings” -> “Developer settings” -> “Personal access tokens”(点我可直达)。

在该页面点击“Generate new token”生成一个新的token,或者你想重新生成以前的token也可以。

新生成的token类似于:ghp_h3xDn0OPQEe3hMMaN7v6no2FWmJXth7Cbqi9

此时,我们便可以再次重试上面失败了的操作:

1
2
3
4
5
6
7
# 假设当前项目是个私有项目
git pull
Username for 'https://github.com': zhdbest
# 下面输入的密码不再是您GitHub账号的密码,而是您刚生成的token:ghp_h3xDn0OPQEe3hMMaN7v6no2FWmJXth7Cbqi9
Password for 'https://zhdbest@github.com':
# 输出了如下内容,可以看到目前已经不再报错了
已经是最新的。

如果您使用的是macOS系统,那大概率您的GitHub的账号密码已经记录在了“钥匙串访问”里,此时您做上述git操作时,不会提示您输入账号、密码,而是直接报错Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.,此时的解决方案是,在钥匙串中找到该密码,然后删除该密码,此时再次重试git操作时便会让您输入账号密码了,此时注意输入的密码为新生成的token即可。或者,干脆直接在“钥匙串访问”中双击该密码记录,然后修改密码为新生成的token即可。

在“钥匙串访问”中搜索“github”即可找到对应的密码记录,注意其种类为“互联网密码”。

github-pwd