跳至主要内容

关于强制性双因素身份验证

启用强制性双因素身份验证,以保护您的账户并保持对 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 条件,这并不会影响组织内其他账户的资格。

注意

GitHub Enterprise 托管用户和本地部署的 GitHub Enterprise Server 用户不需要启用 2FA。强制性 2FA 的启用仅适用于在 GitHub.com 上使用密码的用户。

关于未能启用强制性 2FA

如果您未在 45 天的设置期间内启用 2FA,并且让 7 天的宽限期过期,则在您启用 2FA 之前将无法访问 GitHub.com。如果您尝试访问 GitHub.com,将会提示您启用 2FA。

如果您未能启用强制性 2FA,属于您账户的令牌仍会继续工作,因为它们用于关键的自动化。这些令牌包括个人访问令牌(PAT)和授予应用代表您操作的 OAuth 令牌。启用 2FA 不会撤销或更改已发放给您账户的令牌的行为。然而,已锁定的账户在启用 2FA 之前,无法授权新应用或创建新的 PAT。

关于所需的 2FA 方法

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

目前,我们不支持将密码钥或安全钥作为主要 2FA 方法,因为它们易于丢失且不支持在足够多的设备间同步。随着密码钥的广泛采用和同步支持的普及,我们将在未来支持其作为主要方式。

注意

我们建议在 GitHub.com 保留 Cookie。如果您将浏览器设置为每天清除 Cookie,您将永远没有经过验证的设备用于账户恢复,因为_device_id Cookie用于安全地证明您之前使用过该设备。更多信息请参见若丢失 2FA 凭证,如何恢复账户

关于 TOTP 应用与强制性 2FA

TOTP 应用是 GitHub 推荐的 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 应用。有关支持短信的地区信息,请参见 支持短信认证的国家/地区

© . This site is unofficial and not affiliated with GitHub, Inc.