一、背景
就在这愉快的周末,准备把最近学习的代码案例上传到GitHub中,然后用的新电脑,git本地仓库也是新init初始化的。就在所在代码全部都到它应该待在的地方时候,git push orign main,输入用户名和密码,居然报错了: remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 具体异常信息如下:
➜ SpringCloudAlibabaDemo git:(main) git push origin main
Username for 'https://github.com': Saint9768
Password for 'https://Saint9768@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: unable to access 'https://github.com/Saint9768/SpringCloudAlibabaDemo.git/': The requested URL returned error: 403
我丢,密码没问题呀,细细一看,原来自从2021年8月13日,gitHub不再支持明文密码方式,必须要使用token。
二、怎么官方突然就要用token了呢?
1、修改为token的动机
我们描述了我们的动机,因为我们宣布了对 API 身份验证的类似更改,如下所示:
近年来,GitHub 客户受益于 GitHub.com 的许多安全增强功能,例如双因素身份验证、登录警报、经过验证的设备、防止使用泄露密码和 WebAuthn 支持。 这些功能使攻击者更难获取在多个网站上重复使用的密码并使用它来尝试访问您的 GitHub 帐户。 尽管有这些改进,但由于历史原因,未启用双因素身份验证的客户仍能够仅使用其GitHub 用户名和密码继续对 Git 和 API 操作进行身份验证。
从 2021 年 8 月 13 日开始,我们将在对 Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商) GitHub.com 上所有经过身份验证的 Git 操作。 您也可以继续在您喜欢的地方使用 SSH 密钥(如果你要使用ssh密钥可以参考)。
令牌(token)与基于密码的身份验证相比,令牌提供了许多安全优势:
- 唯一: 令牌特定于 GitHub,可以按使用或按设备生成
- 可撤销:可以随时单独撤销令牌,而无需更新未受影响的凭据
- 有限 : 令牌可以缩小范围以仅允许用例所需的访问
- 随机:令牌不需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响
三、生成自己的token
1)在个人设置页面,找到菜单Setting
2)在setting页面,选择Developer settings
3)选择Personal access tokens,然后选中生成令牌Generate new token
4)设置token的信息,含:token有效期、访问权限等
- 要使用token从命令行访问仓库,请选择repo。
- 要使用token从命令行删除仓库,请选择delete_repo。
- 其他按需勾选。

5)生成token Generate token
下图是生成的token:
有一点比较坑:这个token只有在我们生成的时候可以看到,刷新一下页面它就没了,当不知道后面还要不要用到它的时候,记得保存下来。
6)使用token








还没有评论,来说两句吧...