原创

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

影响范围

好家伙,我直接好家伙,看上面给出的文章,影响范围包括:

  1. 命令行方式的GIT操作,比如:git push,公开仓库clone的方式应该没问题。可能涉及用户校验的都会被限制(阻止)。
  2. 使用git桌面程序(但不包括GitHub Desktop),那还有啥桌面程序?原谅我孤陋寡闻。。。

那咋解决呢?官方推荐双因素认证(验证码),或者个人令牌方式(personal access token ),个人令牌的确挺方便的,比如你现在在一台陌生的机器上你要操作github代码仓库,你使用个人令牌的话,别人无论如何也骗不走你的密码。

个人令牌的好处

官方给出的个人令牌的好处:

  1. 唯一性(Unique)令牌只针对GitHub站点生效,对gitlab(反华急先锋gitlab,打死不用)没效果,同时可以只针对用户或者设备。
  2. 可撤销性(Revocable)令牌能够随时撤销,同时不需要你修改账户信息?
  3. 有限性(Limited)令牌能够做到权限控制
  4. 随机性(Random)拒绝字典破解,拒绝猜测破解

目前官方的行动计划

好了,官方说了这么多,他们也开始行动了:

  • 从今日起(2020-01-09或者更早),当使用github用户密码提交代码到github上的时候,你的邮箱会收到提醒邮件。
  • 2021年6月30日和7月28日,这两天的早上7点到10点(美国东部时间)也就是我们睡觉的时间,下午4点到7点(美国东部时间),我们起来敲代码了,所有Git操作都将临时需要令牌(或SSH密钥)身份验证。
  • 2021年8月13日以后–所有经过身份验证的Git操作都需要令牌(或SSH密钥)身份验证。

个人令牌生成?

当然官方给了推荐的方式:个人令牌,双因素认证。 具体来搞下个人令牌吧,双因素认证太麻烦了!

  1. 验证邮箱,如果之前已经验证过的,跳过1,2两步,直接进入第三步。 进入个人邮箱设置页面:点击按钮Resend verification email
  2. 等待github给你发邮件,github会给你发一个链接,那个链接你点击后,就会跳转到gtihub主页,你就会看到你的邮箱被验证的提示,一个横幅。
  3. 进入个人访问令牌页面
  4. 点击Generate new token
  5. 此时有可能会跳转到密码验证的页面进行登录密码验证,输入密码,继续就好了。
  6. Note底下的输入框中输入别名比如djc8plugin
  7. 输入之后,在Select scopes,中选择你需要的权限,我选择了第一个,repo,如果想知道具体权限,点击这里查看权限说明
  8. 点击Generate token,就会自动跳转回去。
  9. 跳转回去会看到一句话:Make sure to copy your new personal access token now. You won’t be able to see it again!意思是,这是一次性显示的,你刷新页面后就看不到了,赶紧复制吧老铁。复制的内容见下图红色的框 8e70ef1111111111111111111111111c8bba6 2021-01-09_17-27.png

个人令牌的使用

其实令牌就等于是你的密码,你肯定不会透露出你的密码吧?使用方式跟常规的https提交github代码没有差别,输入用户名后,回车,粘贴出个人令牌,回车即可,见下面的操作:

[ya@ya-PC ShortLinks]$ git push
Username for 'https://github.com': chengs2035   
Password for 'https://chengs2035@github.com': [你的令牌粘贴在这里]
枚举对象中: 5, 完成.

参考 Generating a new GPG key

温馨提示:
本文最后更新于 2021年01月09日,已超过 757 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
本文目录