git 初次push到GitHub是输入用户密码,更新成令牌。

问题描述
今天我像往常那样提交Github代码,发现竟然报了下面的错误:

$ git push
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//.git’: The requested URL returned error: 403
意思是从2021年8月13日以后,不再支持用户名密码的方式验证了,需要使用个人访问令牌(personal access token),也就是把你的密码替换成了token。

官方解释
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

1、修改为token的动机

近年来,GitHub 客户受益于 GitHub.com 的许多安全增强功能,例如双因素身份验证、登录警报、经过验证的设备、防止使用泄露密码和 WebAuthn 支持。 这些功能使攻击者更难获取在多个网站上重复使用的密码并使用它来尝试访问您的 GitHub 帐户。 尽管有这些改进,但由于历史原因,未启用双因素身份验证的客户仍能够仅使用其GitHub 用户名和密码继续对 Git 和 API 操作进行身份验证。

从 2021 年 8 月 13 日开始,我们将在对 Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商) GitHub.com 上所有经过身份验证的 Git 操作。 您也可以继续在您喜欢的地方使用 SSH 密钥(如果你要使用ssh密钥可以参考)。

2、修改为token的好处

令牌(token)与基于密码的身份验证相比,令牌提供了许多安全优势:

唯一: 令牌特定于 GitHub,可以按使用或按设备生成。

可撤销:可以随时单独撤销令牌,而无需更新未受影响的凭据。

有限: 令牌可以缩小范围以仅允许用例所需的访问。

随机:令牌不需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响。

解决方法
1)在个人设置页面,点击Settings (官方参考)

微信图片_20210817163911.png
2)进入页面后,点击左侧的Developer settings

微信图片_20210817164020.png
3)点击Personal access tokens(个人访问令牌)

微信图片_20210817164112.png
4)点击Generate new token

微信图片_20210817164406.png
5)设置token的有效期,访问权限等

选择要授予此令牌token的范围或权限。

要使用token从命令行访问仓库,请选择repo。
要使用token从命令行删除仓库,请选择delete_repo。
其他根据需要进行勾选。
微信图片_20210817164942.png
6)点击Generate token生成令牌

微信图片_20210817165054.png
如下是生成的令牌,记得保存,下次就看不到了。

微信图片_20210817165154.png
使用令牌
用法一:直接将token作为密码使用

在需要输入密码的地方,换成token,然后成功push代码!

用法二:修改现有项目的url

git remote set-url origin https://@github.com//.git
将换成你自己得到的令牌。是你自己github的用户名,是你的项目名称,比如:

git remote set-url origin https://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@github.com/zhy001/xxx_project.git
嫌麻烦的话,可以直接编辑项目中.git/config文件,在url中添加token,保存即可。

用法三:在克隆项目的时候在github.com前面加个令牌

git clone https://@github.com//.git
其实,就是在git项目的配置文件中增加了记录:

$ git clone https://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@github.com/zhy001/xxx_project.git

$ cat xxx_project/.git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote “origin”]
url = https://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@github.com/zhy001/xxx_project.git
fetch = +refs/heads/:refs/remotes/origin/
[branch “master”]
remote = origin
merge = refs/heads/master
因此,已克隆的项目修改.git/config中的url也是可以的。

作者:流沙九歌
链接:https://www.jianshu.com/p/e5a3530cb021
来源:简书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值