Github 从2021年8月13日开始,不接受用户密码的方式进行git操作验证
前言
最近使用git push
,输入用户名跟密码,提交代码的时候,发现github给我提示说这种方式要过时了,因为以前我都是用ssh生成密钥的方式来提交代码,但这台电脑因为最近才开始用,所以没有去信赖。
收到奇怪邮件
github发邮件给我提示标题: [GitHub] Deprecation Notice
内容:
Hi @chengs2035,
You recently used a password to access the repository at xxx with git using git/2.29.2.
Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates.
Thanks,
The GitHub Team
影响范围
好家伙,我直接好家伙,看上面给出的文章,影响范围包括:
- 命令行方式的GIT操作,比如:
git push
,公开仓库clone
的方式应该没问题。可能涉及用户校验的都会被限制(阻止)。 - 使用git桌面程序(但不包括GitHub Desktop),那还有啥桌面程序?原谅我孤陋寡闻。。。
那咋解决呢?官方推荐双因素认证(验证码),或者个人令牌方式(personal access token ),个人令牌的确挺方便的,比如你现在在一台陌生的机器上你要操作github代码仓库,你使用个人令牌的话,别人无论如何也骗不走你的密码。
个人令牌的好处
官方给出的个人令牌的好处:
- 唯一性(Unique)令牌只针对GitHub站点生效,对gitlab(反华急先锋gitlab,打死不用)没效果,同时可以只针对用户或者设备。
- 可撤销性(Revocable)令牌能够随时撤销,同时不需要你修改账户信息?
- 有限性(Limited)令牌能够做到权限控制
- 随机性(Random)拒绝字典破解,拒绝猜测破解
目前官方的行动计划
好了,官方说了这么多,他们也开始行动了:
- 从今日起(2020-01-09或者更早),当使用github用户密码提交代码到github上的时候,你的邮箱会收到提醒邮件。
- 2021年6月30日和7月28日,这两天的早上7点到10点(美国东部时间)也就是我们睡觉的时间,下午4点到7点(美国东部时间),我们起来敲代码了,所有Git操作都将临时需要令牌(或SSH密钥)身份验证。
- 2021年8月13日以后–所有经过身份验证的Git操作都需要令牌(或SSH密钥)身份验证。
个人令牌生成?
当然官方给了推荐的方式:个人令牌,双因素认证。 具体来搞下个人令牌吧,双因素认证太麻烦了!
- 验证邮箱,如果之前已经验证过的,跳过1,2两步,直接进入第三步。 进入个人邮箱设置页面:点击按钮
Resend verification email
- 等待github给你发邮件,github会给你发一个链接,那个链接你点击后,就会跳转到gtihub主页,你就会看到你的邮箱被验证的提示,一个横幅。
- 进入个人访问令牌页面
- 点击
Generate new token
- 此时有可能会跳转到密码验证的页面进行登录密码验证,输入密码,继续就好了。
- 在
Note
底下的输入框中输入别名比如djc8plugin
- 输入之后,在
Select scopes
,中选择你需要的权限,我选择了第一个,repo
,如果想知道具体权限,点击这里查看权限说明 - 点击
Generate token
,就会自动跳转回去。 - 跳转回去会看到一句话:
Make sure to copy your new personal access token now. You won’t be able to see it again!
意思是,这是一次性显示的,你刷新页面后就看不到了,赶紧复制吧老铁。复制的内容见下图红色的框8e70ef1111111111111111111111111c8bba6
个人令牌的使用
其实令牌就等于是你的密码,你肯定不会透露出你的密码吧?使用方式跟常规的https提交github代码没有差别,输入用户名后,回车,粘贴出个人令牌,回车即可,见下面的操作:
[ya@ya-PC ShortLinks]$ git push
Username for 'https://github.com': chengs2035
Password for 'https://chengs2035@github.com': [你的令牌粘贴在这里]
枚举对象中: 5, 完成.
本文来自:Github 从2021年8月13日开始,不接受用户密码的方式进行git操作验证-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2021年01月09日,已超过 1,398 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束