解决GitHub不再接受密码进行身份验证,改用令牌(token)验证的问题
1,问题描述
今天准备将 mac 电脑上的 homebrew 升级一下,升级过程中要求输入我的 GitHub 账号密码,但输入后提示如下错误:
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
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: Authentication failed for 'https://github.com/Homebrew/homebrew-versions/'
![](/blog_uploads/202111/2021111114174616157.png)
2,问题原因
根据 GitHub 官方说法,从 2021 年 8 月 13 日开始,他们将在对 Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商) GitHub.com 上所有经过身份验证的 Git 操作。
3,解决办法
(1)简单来说就是将原来输入密码的地方,改成输入 toke 即可。因此首先我们需要创建 token,登录我们的 github,找到 settings:
![](/blog_uploads/202111/2021111114230359736.png)
(2)点击“Developer settings”菜单项。
![](/blog_uploads/202111/2021111114241392154.png)
(3)接着点击“Personal access tokens”菜单项,然后点击右侧的“Generate new token”按钮。
![](/blog_uploads/202111/2021111114282025031.png)
(4)填写 note,并对 token 的有效期和权限进行设置:
- Note:可以随便写
- Expiration:token的有效期根据需求设置。如果嫌麻烦,可以设置为无期限。
- Select scopes:可以为不同的用户(组)生成不同的 token,给予不同的 token 不同的权限。自己个人用的话,全选就可以了。
![](/blog_uploads/202111/202111111434081135.png)
(5)最后点击页面最下方的“Generate token”按钮即可生成 token。
![](/blog_uploads/202111/2021111114355183961.png)
(6)我们把生成的 token 复制下来,在原来输入密码的时候,输入生成的 token 就可以了。
![](/blog_uploads/202111/2021111114390225849.png)