解决 Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

问题描述

使用 git push 推送到远程GitHub仓库时出现:

1
2
3
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/zoiiiiii/heox-blog.git/' 鉴权失败

官方的解释: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
2
3
4
5
6
7
8
9
10
11
Username for 'https://github.com': (输入GitHub账号)
Password for 'https://zoiiiiii@github.com':(输入Token)
枚举对象中: 20, 完成.
对象计数中: 100% (20/20), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (13/13), 完成.
写入对象中: 100% (17/17), 30.75 KiB | 15.38 MiB/s, 完成.
总共 17(差异 4),复用 9(差异 2),包复用 0
remote: Resolving deltas: 100% (4/4), completed with 2 local objects.
To https://github.com/zoiiiiii/xxxxxx.git
20a2e63..8670176 main -> main

没有出现输入框的使用:

1
git config --system --unset credential.helper

3、可以直接把Token添加远程仓库链接中,这样可以避免每次都要输入账号密码。

1
git remote set-url origin https://<生成好的Token>@github.com/<GitHub账号>/<仓库名>.git
CodeKZero WeChat Pay

WeChat Pay

CodeKZero Alipay

Alipay