问题描述
使用 git push
推送到远程GitHub仓库时出现:
1 | remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. |
官方的解释:https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/
原因分析
由于GitHub在 2021 年 8 月 13 日移除了对密码身份验证的支持,让我们改用个人访问令牌(Token)。
简单说就是把 GitHub密码
替换成用 个人访问令牌(Token)
来访问 。
这次更改主要是为了防止GitHub密码泄露导致一系列安全问题,所以采用Token设置权限来访问。
使用Token做密码的好处
可以让不同设备(或设备组)设置不同的访问令牌,并且可以设置不同的访问权限范围。
可以让不同设备(或设备组)的访问令牌失效,在离职或者设备不使用后可以让其失效。
解决方法
一、生成Token
1、在GitHub个人界面 点击头像
,选择 Settings
2、在Settings界面里选择 Developer settings
3、Developer settings界面里选择 Personal access tokens
4、在个人访问令牌里选择 Generate new token
新建Token
5、设置新建Token的访问权限和有效时间:
Note
里填写备注,比如某设备或某设备组,这样会比较好针对性的进行管理。
Select scopes
里选中 repo(里面全选)
和 delete_repo
repo(里面全选),从命令行访问仓库。
delete_repo,从命令行删除仓库。
其他选项可以根据自己需求选择。
6、设置完,选择 Generate token
生成令牌
7、复制并保存好Token。⚠️注意:因为Token只能查看一次,丢失了就再也查不到了。
二、使用Token登陆
1、在终端里输入
1 | git push origin master |
2、账号输入 GitHub账号
,密码输入 Token
,就可以上传了。
1 | Username for 'https://github.com': (输入GitHub账号) |
没有出现输入框的使用:
1 | git config --system --unset credential.helper |
3、可以直接把Token添加远程仓库链接中,这样可以避免每次都要输入账号密码。
1 | git remote set-url origin https://<生成好的Token>@github.com/<GitHub账号>/<仓库名>.git |