GMTC深圳站售票最后一周,点击查看最新日程>> 了解详情
写点什么

GitHub 新规:Git 操作的身份验证将放弃密码,改用令牌或 SSH 密钥

  • 2020 年 12 月 17 日
  • 本文字数:1717 字

    阅读完需:约 6 分钟

GitHub新规:Git操作的身份验证将放弃密码,改用令牌或SSH密钥

12 月 15 日,GitHub 在官方博客宣布:从 2021 年 8 月 13 日开始,在 GitHub.com 上执行 Git 操作时,不再接受以账户密码的形式完成身份验证。


换言之,如果此后,开发者再使用密码去完成身份验证,那将无法通过,也就不能进一步执行 Git 操作。


据悉,在今年 7 月,GitHub 宣布将在所有需要身份验证的 Git 操作中使用基于令牌的验证机制,比如个人访问、OAuth 或者 GitHub App 安装令牌。


哪些工作流受到影响?


  • 命令行 Git 访问

  • 使用 Git 的桌面应用程序(GitHub Desktop 不受影响)

  • 使用您的密码直接访问 GitHub.com 上各 Git repo 的一切应用程序/服务


以下客户不受此项变更的影响:


  • 如果您为账户启用了双因素身份验证(2FA),则代表已经在使用基于令牌或 SSH 的方式进行身份验证。

  • 如果您使用 GitHub Enterprise Server,此本地产品尚未就身份验证做出更改。

  • 如果您已经拥有GitHub App,其之前就已经不支持密码验证方式。


变更背景


上周,Github 发布了 2020 年度开发者报告。报告显示,自 2008 年推出以来,GitHub 已经成为互联网上最大的项目管理和开源协作平台,到今年为止,社区已经拥有 5600 万开发者,去年这个数据是 4000 万。假设保持这样的增长速率,GitHub 用户预计将在 2025 年达到一个亿。2020 年,开发人员共创建了 6000 万个新 repo 库,相比去年增加了 35%。


毫无疑问,随着 GitHub 规模和社区影响力的不断变大,安全变得越来越重要。为此,GitHub 推出了一系列安全增强功能,来帮助用户提升安全水平,比如双因素身份验证、登录警报、认证设备、防止使用已泄露的密码以及支持 WebAuth 等等。在这些功能的支持下,攻击者将更难于获得已经被用于多个网站的重复密码,无法单纯借此完成密码撞库。


但是,出于一些历史原因,未启用双因素身份验证的客户仍能够单纯使用 GitHub 用户名及密码以验证 Git 及 API 操作。


在 2021 年 8 月 13 日之后,当针对 Git 操作进行身份验证时,GitHub 将不再接受纯账户加密码形式,即强制要求您使用基于令牌的认证机制。


GitHub 表示:


您可以使用个人访问令牌(对于开发人员)、OAuth 或者 GitHub App 安装令牌(对于集成商)在 GitHub.com 上完成一切需要身份验证的 Git 操作。当然,您也可以继续使用 SSH 密钥。


据悉,与基于密码的传统身份验证机制相比,令牌保护具有以下安全优势:


  • 唯一——令牌将权限于 GitHub 使用,可按使用次数或按设备生成。

  • 可撤销——令牌可以随时被单独撤销,且无需更新未受影响的其他凭证。

  • 受限——令牌的使用范围可以得到严重控制,例如仅允许执行用例中需要的访问活动。

  • 随机——令牌的复杂度远高于您需要硬性记忆并定期输入的简单密码,因此不受字典或暴力破解等行为的影响。


开发者当下需要做些什么?


  • 对于开发者们,如果您正在使用密码以通过 GitHub.com 验证 Git 操作,则必须在 2021 年 8 月 13 日之前开始通过 HTTPS(推荐)或 SSH 密钥使用个人访问令牌,以避免业务受到影响。如果收到警告,则代表您正在使用已经过时的第三方集成,请尽快将客户端更新为最新版本。

  • 对于集成商,您必须在 2021 年 8 月 13 日之前使用 Web 或设备授权流程对集成方案进行身份验证,以避免业务受到影响。关于更多详细信息,请参阅授权OAuth应用以及开发者博客上的相关公告


启用双因素身份验证


要确保您的账户不允许基于密码的身份验证,请立即为账户启用双因素身份验证机制。具体来讲,您需要通过 Git 及第三方集成将个人访问令牌应用于一切经过身份验证的操作。


两轮预演


为了确保所有受到影响的客户都明确知晓本次验证机制变更,我们计划通过两轮预演暂停对密码认证的支持,届时用户将无法使用密码执行 Git 操作。预演活动计划于以下日期及时段内进行:


2021 年 6 月 30 日


  • 7:00 AM UTC – 10:00 AM UTC

  • 4:00 PM UTC – 7:00 PM UTC


2021 年 7 月 28 日


  • 7:00 AM UTC – 10:00 AM UTC

  • 4:00 PM UTC – 7:00 PM UTC


时间表


  • 今天——如果您目前正在使用密码通过 GitHub.com 对 Git 操作进行身份验证,则将很快收到一封电子邮件,敦促您更新身份验证方法或第三方客户端。

  • 2021 年 6 月 30 日及 7 月 28 日——所有 Git 操作都将暂时性要求使用令牌(或 SSH 密钥)验证,以鼓励受到影响的客户及时更新其身份验证方法。

  • 2021 年 8 月 13 日——全部 Git 操作都需要使用令牌(或 SSH 密钥)完成身份验证。


参考文章:


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


2020 年 12 月 17 日 13:423781
用户头像
万佳 InfoQ编辑

发布了 631 篇内容, 共 243.3 次阅读, 收获喜欢 1629 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第一周总结

小小杨

极客大学架构师训练营

架构师训练营-第一课学习总结

King

学习 感悟 极客大学架构师训练营

食堂就餐卡系统设计

Z冰红茶

小师妹学JavaIO之:文件写入那些事

程序那些事

Java io nio Java 25 周年 小师妹

架构师思维

林昱榕

极客大学架构师训练营

架构师训练营 第一周 作业 食堂就餐卡系统设计

一雄

极客大学架构师训练营 作业 第一周

考虑用静态工厂方法代替构造器

dreamer

Java 互联网 后端 开发

小师妹学JavaIO之:文件编码和字符集Unicode

程序那些事

io nio Java 25 周年 小师妹

架构训练营-食堂就餐卡管理系统

架构师0期 | 架构师是怎样炼成的?

刁架构

极客大学架构师训练营

架构师训练营 第一周 学习总结

一雄

学习 极客大学架构师训练营 第一周

小师妹学JavaIO之:目录还是文件

程序那些事

Java io nio Java 25 周年 小师妹

Chaos is a ladder——近期工作体会

石君

职场 职场成长 工作体会

UML 练习 食堂就餐卡

Mr.hou

极客大学架构师训练营

第01周命题作业-食堂就餐卡系统架构设计

Jaye

极客大学架构师训练营

C02-商业模式与架构设计

吴传卜

食堂就餐卡系统设计

极客李

迷宫的生成: DFS与BFS算法的实现

lmymirror

DFS 迷宫 Cocos Creator BFS

食堂就餐卡系统概要设计

小小杨

极客大学架构师训练营

第三季已经起航,送你一份活动手册吧

赵新龙

写作 社群

架构训练营-第一课总结

01学习总结

赵龙

小师妹学JavaIO之:文件File和路径Path

程序那些事

Java io nio Java 25 周年 小师妹

小师妹学JavaIO之:文件读取那些事

程序那些事

Java io nio Java 25 周年 小师妹

架构师训练营 听课总结 -- 第一周

fujin

极客大学架构师训练营

源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

小傅哥

spring 源码 源码分析 小傅哥 mybatis

Week 01 学习总结

卧石漾溪

极客大学架构师训练营

架构师训练营-作业1-食堂就餐卡系统设计

狂奔嘀兔纸

极客大学架构师训练营

搞定 HTTP 协议(二):HTTP 协议总览

零和幺

HTTP

Kafka系列10:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(下)

z小赵

大数据 kafka 面试 实时计算

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

旭东(Frank)

架构 极客大学架构师训练营 作业

数据cool谈(第2期)寻找下一代企业级数据库

数据cool谈(第2期)寻找下一代企业级数据库

GitHub新规:Git操作的身份验证将放弃密码,改用令牌或SSH密钥-InfoQ