GitHub 2FA:如何设置身份验证器 App
作者:Novaz 团队 · 更新于 2026年10月29日
Novaz 操作步骤已在 1.0.5 版本中核实
本文译自英文指南。在服务的网站上,按钮和菜单的中文名称可能略有不同。
本页内容
GitHub 账号存放着你的仓库、议题和拉取请求,而在这里,是否开启双重认证(2FA)往往由不得你选择。自 2023 年 3 月起,GitHub 要求贡献代码的账号开启 2FA,组织也可以要求其成员开启。GitHub 推荐把身份验证器 App(其文档称为 TOTP App)作为主要方式。开始设置时唯一的另一种选择是短信;通行密钥、安全密钥和 GitHub Mobile 可以之后再添加(GitHub,GitHub)。本指南以 iPhone 上的 Authenticator App - Novaz 为例,但任何身份验证器 App 的用法都一样。
我们如何核实本指南: GitHub 的步骤来自 GitHub Docs 和 GitHub Blog,均附有链接,我们于 2026 年 10 月 20 日阅读了这些内容。我们没有在 GitHub 账号上实测,所以个别标签可能略有不同。Novaz 的步骤已在 App 1.0.5 版上核对。
你的账号必须开启 2FA 吗?
GitHub 根据账号的活动来选定需要开启 2FA 的账号:发布 App 或 Action、创建发行版、拥有组织,或者为发布软件包的仓库或 GitHub 认定为高重要性的仓库贡献代码。被选中的账号会收到电子邮件和横幅提示,有 45 天时间设置 2FA,另加 7 天宽限期。之后,在开启 2FA 之前将无法使用 GitHub.com。公司的单点登录并不能让你免于这项要求(GitHub)。
你永远不必向 GitHub 提供手机号:有身份验证器 App 就够了。在 GitHub 不提供短信的地区,它也是唯一的选择;对于只允许安全方式的组织,它也算作安全方式(GitHub)。
用身份验证器 App 开启 2FA
在 GitHub.com 上的步骤(GitHub):
- 点击右上角的头像,然后点击 Settings(设置)。
- 在边栏的 Access(访问)部分,点击 Password and authentication(密码和身份验证)。
- 在 Two-factor authentication(双重身份验证)下,点击 Enable two-factor authentication(启用双重身份验证)。
- GitHub 会在 Scan the QR code(扫描二维码)下显示一个二维码。在 Novaz 中,点按 +,然后点按扫描二维码。如果二维码就在同一部 iPhone 上,先截屏,然后使用选择照片。参见在同一部 iPhone 上扫描二维码。
- 无法扫描?点击 setup key(设置密钥),以文本形式查看密钥。在 Novaz 中,点按 +,然后点按手动输入密钥,把它输入为设置密钥。GitHub 使用 6 位、30 秒和 SHA-1,所以手动输入密钥也能用。参见什么是 2FA 设置密钥?
- 在 Verify the code from the app(验证 App 中的验证码)下输入 Novaz 中的验证码。
- 在 Save your recovery codes(保存恢复码)下,点击 Download(下载),然后点击 I have saved my recovery codes(我已保存恢复码)。点击后 2FA 即开启。
28 天检查
新设置的 2FA 会启动一个 28 天的检查期。在此期间完成一次 2FA 登录,检查就会结束。如果没有完成,GitHub 会在第 28 天在你某个已打开的会话中要求 2FA 验证(GitHub)。这样做是为了发现设置有误的身份验证器 App。如果无法通过,GitHub 会提供一条捷径,让你在不被锁在账号之外的情况下重新设置 2FA(GitHub)。最简单的做法:设置完成后不久就退出登录,再用 Novaz 中的验证码重新登录。
你的恢复码
你会得到 16 个一次性恢复码,格式为 xxxxx-yyyyy,默认保存为 github-recovery-codes.txt(GitHub,GitHub)。GitHub 推荐能备份到云端的身份验证器 App(GitHub)。在 Novaz 中,这就是 iCloud 备份(PRO)。你自己导出的备份文件也可以,只要保持更新;两者都没有时,它的密钥只保存在你的 iPhone 上。无论如何都要保留这些恢复码,以防哪天手机不在了,而备份又没有或已过时。GitHub 建议用密码管理器保存它们。
之后,在 Password and authentication 中点击 Recovery codes(恢复码)旁边的 View(查看),即可 Download(下载)、Print(打印)或 Copy(复制)。Generate new recovery codes(生成新的恢复码)会让旧的一组作废,关闭后再开启 2FA 也会如此。更换身份验证器 App 则不会(GitHub)。参见 2FA 备用码。
GitHub 要求输入验证码时
登录时,GitHub 会在你输入密码后要求输入验证码。只有在你退出登录、使用新设备、会话过期或执行敏感操作时,它才会再次要求(GitHub)。敏感操作包括更改电子邮件地址、添加 SSH 密钥、创建个人访问令牌和查看恢复码。完成一次之后,GitHub 在两小时内不会再次要求(GitHub)。
命令行中的 Git 从不要求输入验证码:HTTPS 使用个人访问令牌,SSH 照常工作(GitHub)。
GitHub 拒绝你的验证码时
验证码错误时会显示 Two-factor authentication failed(双重身份验证失败)。GitHub 建议检查以下几点:读取的是 App 中你设置的那个条目的验证码、手机的日期和时间设为自动、输入新的验证码时要立即输入并且不带空格(GitHub)。在 iPhone 上,就是 设置 › 通用 › 日期与时间 › 自动设置。时钟偏差达到 15 秒或更多时,Novaz 会提醒你。
同一页面还说,GitHub 客服 “cannot assist with troubleshooting your 2FA methods”(无法协助排查你的 2FA 方式问题)(GitHub)。参见身份验证器验证码无效?
迁移到新 iPhone
不需要关闭 2FA。在 Password and authentication 的 Two-factor methods(双重身份验证方式)下,点击身份验证器 App 旁边的 Edit(编辑)(如果有多种方式,先打开它旁边的菜单)。用新 iPhone 上的 Novaz 扫描新的二维码,输入验证码,然后点击 Save(保存)。你的恢复码保持不变(GitHub)。完成之后,再从旧 iPhone 上的 Novaz 中移除 GitHub:打开它,点按移除账号。请在交出旧 iPhone 之前完成。如果你有 iCloud 备份或 Novaz 备份文件,也可以改为在新 iPhone 上恢复账号,GitHub 条目会照常可用。参见如何将身份验证器 App 迁移到新 iPhone。
如果身份验证器丢了
GitHub 提供的选项,按顺序如下(GitHub):
- 你添加的其他方式:通行密钥、安全密钥、GitHub Mobile 或短信。
- 恢复码。 输入密码后,在 More options(更多选项)下选择 2FA recovery code(2FA 恢复码),输入一个恢复码,然后点击 Verify(验证)。
- 账号恢复。 在同一界面上,选择 Begin account or email recovery(开始账号或电子邮件恢复),然后选择 I understand, get started(我了解,开始)。输入 GitHub 通过电子邮件发送的一次性密码,然后用 Verify with this device(使用此设备验证)(如果你以前在这台设备上登录过)、SSH key(SSH 密钥)或 Personal access token(个人访问令牌)证明是你本人。GitHub 客服会审核申请,并在三个工作日内通过电子邮件回复。
连密码也忘了?先重置密码,GitHub 随后会提供同样的选项。
第 3 种选项只有在你事先做好准备时才有效。GitHub 建议添加一个用作身份验证密钥的 SSH 密钥,或一个具有 repo 权限范围的经典个人访问令牌(GitHub)。不要每天清除 Cookie:GitHub 正是靠 Cookie 识别你以前用过的设备(GitHub)。
如果都不行,这个账号就永久丢失了。客服不会恢复它,也不接受身份证件核验(GitHub)。你仍然可以解除电子邮件地址的关联,把它用在新账号上。参见装有身份验证器 App 的手机丢了?
关闭 2FA
在 Password and authentication 中,打开三个点菜单,选择 Disable two-factor authentication(停用双重身份验证)并确认。你将无法访问要求 2FA 的组织;如果你是被 GitHub 选定必须开启 2FA 的账号,则根本无法关闭它(GitHub)。要更换 App,请改为编辑该方式。
GitHub 官方帮助
- About mandatory two-factor authentication
- Configuring two-factor authentication
- Accessing GitHub using two-factor authentication
- Configuring two-factor authentication recovery methods
- Changing your two-factor authentication method
- Troubleshooting two-factor authentication issues
- Recovering your account if you lose your 2FA credentials
- GitHub Account Recovery Policy
- Disabling two-factor authentication for your personal account
- Sudo mode
- Requiring two-factor authentication in your organization
- Raising the bar for software security: GitHub 2FA begins March 13(GitHub Blog)