跳至主要内容

关于强制双因素身份验证

启用强制双因素身份验证以保护您的帐户并保持对 GitHub.com 的访问。

截至 2023 年 3 月,GitHub 要求所有在 GitHub.com 上贡献代码的用户启用一种或多种双因素身份验证 (2FA) 形式。如果您属于符合条件的组,则在该组被选中注册时,您会收到一封通知电子邮件,标志着 45 天 2FA 注册期的开始,并且您会在 GitHub.com 上看到要求您注册 2FA 的横幅。如果您没有收到通知,则您不属于需要启用 2FA 的组,尽管我们强烈建议您这样做。

关于强制 2FA 的适用性

如果您在 GitHub 上采取了一些表明您是贡献者的操作,则您的帐户将被选中用于强制 2FA。符合条件的操作包括

  • 发布供他人使用的应用或操作
  • 为您的存储库创建版本
  • 为特定高重要性存储库贡献代码,例如开放源代码安全基金会跟踪的项目
  • 是高重要性存储库的管理员或贡献者
  • 是包含存储库或其他用户的组织的所有者
  • 是发布了一个或多个软件包的存储库的管理员或贡献者
  • 是企业管理员

GitHub 正在不断评估对我们帐户安全功能和 2FA 要求的改进,因此这些标准可能会随着时间的推移而发生变化。

注意

如果您的帐户启用了教育优惠券,则可免除强制 2FA。

关于组织和企业的强制 2FA

GitHub 本身需要强制 2FA 以提高个人开发者和更广泛的软件开发生态系统的安全性。您的管理员也可能要求启用 2FA 作为加入其组织或企业的必要条件,但这些要求与该计划无关。要查找已启用 2FA 或需要启用 2FA 的用户,请参阅“查看您企业中的成员”或“查看您的组织中的用户是否已启用 2FA”。

您的帐户强制 2FA 的适用性**不会**影响其他个人的适用性。例如,如果您是组织所有者,并且您的帐户符合强制 2FA 的条件,则不会影响您组织内其他帐户的适用性。

注意

GitHub Enterprise 托管用户和本地 GitHub Enterprise Server 用户**无需**启用 2FA。强制启用 2FA 仅适用于在 GitHub.com 上拥有密码的用户。

关于未能启用强制 2FA

如果您在 45 天的设置期间未启用 2FA,并且您允许 7 天的宽限期过期,则您将无法访问 GitHub.com,直到您启用 2FA 为止。如果您尝试访问 GitHub.com,系统会提示您启用 2FA。

如果您未能启用强制 2FA,则属于您帐户的令牌将继续起作用,因为它们用于关键自动化。这些令牌包括个人访问令牌和为代表您行动的应用程序发放的 OAuth 令牌。启用 2FA 不会撤销或更改为您的帐户发放的令牌的行为。但是,已锁定帐户将无法授权新应用或创建新的 PAT,直到它们已启用 2FA 为止。

关于所需的 2FA 方法

我们建议将基于时间的一次性密码 (TOTP) 应用设置为您的主要 2FA 方法,并添加密钥或安全密钥作为备份。如果您没有密钥或安全密钥,GitHub 移动应用也是一个不错的备份选项。短信在大多数国家/地区都很可靠,但存在某些威胁模型可能无法使用的安全风险。

目前,我们不支持将密钥或安全密钥作为主要 2FA 方法,因为它们很容易丢失,并且不支持在足够广泛的设备范围内同步。随着密钥的更广泛采用和同步支持的普及,我们将支持它们作为主要方法。

注意

我们建议保留 GitHub.com 上的 Cookie。如果您将浏览器设置为每天清除 Cookie,则您将永远不会拥有用于帐户恢复目的的已验证设备,因为_device_id Cookie 用于安全地证明您以前使用过该设备。有关更多信息,请参阅“如果您丢失 2FA 凭据,如何恢复您的帐户”。

关于 TOTP 应用和强制 2FA

对于 GitHub 而言,推荐使用 TOTP 应用作为双因素身份验证 (2FA) 的方式。有关配置 TOTP 应用的更多信息,请参阅“配置双因素身份验证”。

如果您不想在移动设备上下载应用,有多种独立的 TOTP 应用可供选择,这些应用可在多个平台上运行。对于桌面应用程序,我们推荐 KeePassXC,对于基于浏览器的插件,我们推荐 1Password

您也可以手动设置任何生成符合 RFC 6238 标准代码的应用。有关手动设置 TOTP 应用的更多信息,请参阅“配置双因素身份验证”。有关 RFC 6238 的更多信息,请参阅 IETF 文档中的 TOTP:基于时间的动态口令算法

注意

如果您使用 FreeOTP 进行 2FA,您可能会看到有关弱密码参数的警告。GitHub 使用 80 位密钥以确保与旧版 Google Authenticator 兼容。80 位低于 HOTP RFC 推荐的 128 位,但目前我们没有计划更改此设置,建议您忽略此消息。更多信息,请参阅 IETF 文档中的 HOTP:基于 HMAC 的一次性密码算法

关于 SAML SSO 和强制 2FA

如果您已被选中强制启用 2FA,即使您的公司已经要求使用支持 2FA 的单点登录 (SSO),您也必须在 GitHub.com 上注册 2FA。虽然支持 2FA 的 SSO 是保护组织或企业拥有的资源的强大方法,但它并不能保护与组织或企业无关的 GitHub.com 上用户拥有的内容,也不能保护用户的个人资料和设置。

GitHub 只要求您在初始身份验证和执行敏感操作时执行 2FA,因此即使您每天都需要执行公司 2FA 才能访问 GitHub,您也很少需要通过 GitHub 进行第二次 2FA 验证。有关敏感操作的更多信息,请参阅“Sudo 模式”。

关于邮箱验证和强制 2FA

登录 GitHub.com 时,邮箱验证不计为 2FA。您的帐户邮箱地址用于密码重置,这是一种帐户恢复方式。如果攻击者可以访问您的邮箱,他们可以重置您的帐户密码并通过邮箱设备验证检查,从而将您的帐户保护降低到单因素身份验证。我们要求使用第二因素来防止这种情况,因此该第二因素必须与您的邮箱不同。启用 2FA 后,我们将不再执行登录时的邮箱验证。

关于服务帐户和强制 2FA

在您的组织中,例如机器人和服务帐户等无人值守或共享访问帐户,如果已选中强制启用双因素身份验证,则必须注册 2FA。启用 2FA 不会撤销或更改为服务帐户发行的令牌的行为。GitHub 建议将服务帐户的 TOTP 密钥安全地存储在共享凭据存储中。更多信息,请参阅“使用双因素身份验证管理机器人和服务帐户”。

关于强制 2FA 和您的隐私

如果您已被选中强制启用 2FA,这**并不**意味着您必须向 GitHub 提供您的电话号码。只有在您使用短信进行 2FA 时才需要提供您的电话号码。我们建议您将 TOTP 应用配置为您的主要 2FA 方法。有关更多信息,请参阅“配置双因素身份验证”。

注意

您的地区可能未列在可用的短信选项中。我们按地区监控短信投递成功率,并禁止投递成功率低的地区进行设置。如果您在列表中没有看到您的地区,则必须改用 TOTP 应用。有关短信支持地区的更多信息,请参阅“支持短信身份验证的国家/地区”。