启用双因素身份验证 (2FA) 后,在通过浏览器访问 GitHub 时,需要使用第二个因素。 首次配置 2FA 时,帐户将进入为期 28 天的检查期,目的是确保帐户的 2FA 方法设置正确。 可以通过在 28 天内成功执行 2FA 来退出检查期。 如果未能在 28 天内进行身份验证,系统将要求你在现有 GitHub.com 会话之一内执行 2FA。 如果无法执行 2FA 以通过第 28 天的检查,请使用提供的快捷方式重新配置 2FA 设置并保留对 GitHub.com 的访问权限。 有关详细信息,请参阅“配置双重身份验证”。
如果使用其他方法(如 API 或命令行)访问 GitHub,需要使用令牌、应用程序或 SSH 密钥进行身份验证。 有关详细信息,请参阅“关于向 GitHub 验证”。
在登录网站时执行 2FA
使用密码登录到 GitHub 后,需要提供身份验证代码,点击 GitHub Mobile 中的通知,或使用安全密钥执行 2FA。
GitHub 仅在你退出登录后、使用新设备、执行敏感操作或会话过期时才会要求你再次提供 2FA 验证码。 有关针对敏感操作的 2FA 的详细信息,请参阅“Sudo 模式”。
通过 TOTP 应用程序生成代码
如果选择使用 TOTP 应用程序设置双因素身份验证,可随时为 GitHub 生成验证码。 大多数情况下,只有启动应用程序才会生成新代码。 具体说明请参阅应用程序的文档。
如果在配置双因素身份验证后删除身份验证应用程序,需要提供恢复代码才能访问帐户。 许多 TOTP 应用支持在云中安全地备份验证码,如果你失去对设备的访问权限,可以进行恢复。 有关详细信息,请参阅“丢失 2FA 凭据时恢复帐户”。
使用安全密钥
如果你已对帐户设置了安全密钥,并且浏览器支持安全密钥,可以使用它来完成登录。
- 使用用户名和密码,通过浏览器登录到 GitHub。
- 如果使用物理安全密钥,请确保它已连接到设备。
- 若要从操作系统触发安全密钥提示,请选择“使用安全密钥”。
- 在提示中选择相应的选项。 根据安全密钥配置,可以键入 PIN、完成生物识别提示或使用物理安全密钥。
使用密钥
如果已启用 2FA,并且已将密钥添加到帐户,可以使用该密钥登录。 由于密钥同时满足密码和 2FA 要求,因此只需一个步骤即可完成登录。 有关详细信息,请参阅“关于密钥”和“使用密钥登录”。
接收短信
如果设置通过短信进行双重身份验证,GitHub 将通过短信向您发送验证码。
向 GitHub Mobile 验证
如果您已安装并登录到 GitHub Mobile,则可以选择向 GitHub Mobile 验证以进行双重身份验证。
-
使用您的用户名和密码通过浏览器登录 GitHub。
-
GitHub 将向您发送推送通知以验证您的登录尝试。 打开推送通知或打开 GitHub Mobile 应用程序将显示提示,要求你批准或拒绝此登录尝试。
注意:此提示可能要求你输入正在登录的浏览器中显示的两位数字。
- 使用 GitHub Mobile 批准登录尝试后,您的浏览器将自动完成登录尝试。
- 拒绝登录尝试将阻止身份验证完成。 有关详细信息,请参阅“保护帐户和数据安全”。
通过命令行使用双重身份验证
启用 2FA 可能会影响通过命令行向 GitHub 进行身份验证。 若要了解你的身份验证方法是否受到影响,请参阅以下部分。
使用 Git 凭据管理器在命令行上进行身份验证
Git 凭据管理器是一个安全的 Git 凭据帮助程序,可在 Windows、macOS 和 Linux 上运行。 有关 Git 凭据帮助程序的详细信息,请参阅 Pro Git 手册中的避免重复。
安装说明因计算机操作系统而异。 有关详细信息,请参阅 GitCredentialManager/git-credential-manager 存储库中的下载和安装。
在命令行上使用 HTTPS 验证
必须创建 personal access token,用作在命令行上使用 HTTPS URL 向 GitHub 进行身份验证时的密码。
当命令行上提供用户名和密码时,使用你的 GitHub 用户名和 personal access token。 命令行提示不会指出在要求输入密码时应输入 personal access token。
有关详细信息,请参阅“管理个人访问令牌”。
在命令行上使用 SSH 验证
启用 2FA 不会更改您在命令行上使用 SSH URL 向 GitHub 验证的方式。 有关设置和使用 SSH 密钥的详细信息,请参阅“通过 SSH 连接到 GitHub”。
使用双重身份验证通过 Subversion 访问仓库
注意:将于 2024 年 1 月 8 日从 GitHub 中删除 Subversion 支持。 2024 年 1 月 8 日之后的 GitHub Enterprise Server 未来版本也将取消 Subversion 支持。 若要详细了解此内容,请参阅 GitHub 博客。
通过 Subversion 访问存储库时,必须提供 personal access token,而不是输入密码。 有关详细信息,请参阅“管理个人访问令牌”。
故障排除
如果失去对双重身份验证凭据的访问,您可以使用恢复代码或其他恢复方式(如已设置)重新获取对帐户的访问。 有关详细信息,请参阅“丢失 2FA 凭据时恢复帐户”。
注意:如果无法使用任何恢复方法,表示已永久失去对帐户的访问权限。 但是,可以取消链接已绑定到锁定帐户的电子邮件地址。 然后,可以将已取消链接的电子邮件地址链接到新的或现有的帐户。 有关详细信息,请参阅“从锁定的帐户取消链接电子邮件地址”。
如果身份验证失败多次,您可能要与移动提供商同步手机的时钟。 通常,这需要在手机的时钟上选中 "Set automatically"(自动设置)选项,而不是提供自己的时区。
延伸阅读
- "关于双重身份验证"
- "配置双重身份验证"
- "配置双重身份验证恢复方法"
- "丢失 2FA 凭据时恢复帐户"