首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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/

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/9dAxTD6BcgLOsf4lxHAa
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券