背景
昨晚在提交代码到 github 时候提示了异常:
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: unable to access ‘XXXXX/’: The requested URL returned error: 403
我一直以来是使用 https 账号密码进行认证,所以踩坑了…
原因是因 github 在 2020 年 7 月,宣布要求对所有经过身份验证的 Git 操作使用基于令牌的身份验证(例如,个人访问、OAuth 或 GitHub 应用程序安装令牌)。从 2021 年 8 月 13 日开始,将在 GitHub.com 上对 Git 操作进行身份验证时不再接受帐户密码。
解决方案
必须在 2021 年 8 月 13 日之前通过 HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌。
所以需要在你的 Github 去创建访问令牌,步骤如下:
第一:在任何页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)。
第二:在左侧边栏中,单击 Developer settings。
第三:在左侧边栏中,单击 Personal access tokens(个人访问令牌)。
第四:单击 Generate new token(生成新令牌)。
第五:给令牌一个描述性名称。
第六:选择要授予此令牌的作用域或权限。 要使用令牌从命令行访问仓库,请选择 repo(仓库)。
懒人就全选吧…
第七:单击 Generate token(生成令牌)。有效期自己选择,懒人就是永不过期…
第八:单击 将令牌复制到剪贴板。关闭页面后不能再出现,除非重新生成!
使用
一,若是新的仓库,在密码处输入刚才的令牌代替原来的密码即可。如下:
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
二,若是已有的仓库,需要使用凭据小助手擦除旧的密钥链条目。
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
MAC 用户还可以在钥匙串里面清除:
- 找到 Keychain access。
- 在 Keychain Access 中,搜索 github.com。
- 查找 github.com 的“互联网密码”条目。
- 相应地编辑(把密码改为创建的令牌)或删除该条目。