目录

一次性搞定 Github Enable two-factor authentication

一、背景

最近经常收到 github 官方的邮件:

Hey XXXX!


This is a reminder that we announced that we are requiring 
users contributing code on GitHub.com
 to enable two-factor authentication (2FA). 
You are receiving this notification because your account meets
 this criteria and will be required
 to enroll in 2FA by November 14th, 2024 at 00:00 (UTC).

Please see the below FAQ, or learn more about 2FA on GitHub Help.

大概意思是说在限定时间内,github账号必须开启 两因素认证(2FA),否则将无法登陆(限制登录使用)

然后如果在规定时间内没有开启 2FA,那么之后你登陆 github 账号就会一直显示:Enable two-factor authentication(2FA)

要求你的账号必须开启 2FA,否则无法登录进去…….

二、为什么必须开 Github 2FA?

在讲步骤前,先明确一个问题:明明有密码了,为什么还要多此一举开 2FA?答案就一个:防暴力破解和密码泄露。

现在很多人的密码会重复用,一旦某个平台密码泄露,黑客会用“撞库”工具批量尝试登录 Github。

而 2FA 相当于给账号加了第二把锁——即使密码被拿到,没有动态验证码也登不上。

尤其是仓库里有公司代码、个人开源项目的,2FA 是基础防护,Github 官方也一直强推这个功能,在“安全设置”里会直接提示“开启 2FA 提升安全性”。

就是一个二次安全验证,目的也是为了保障账户的安全性

三、两种验证方式选哪种?

Github 支持两种 2FA 验证方式,选一种就行,优先推荐第一种(更安全稳定):

  • 认证 APP 验证(推荐):用手机 APP 生成动态验证码,比如 Google Authenticator(谷歌验证器)、Microsoft Authenticator(微软验证器)、Authy 等,离线也能用,稳定性高;

  • 短信验证(备用):通过短信接收验证码,缺点是依赖手机信号,境外号码可能收不到,且有被短信拦截的风险,建议作为备用方式。

  • browser extension(浏览器拓展)

本文以“Microsoft Authenticator”为例讲解,其他 APP 操作逻辑一致。

其中方式三短信验证,有些手机号码接收不到 github 的短信,所以用不了

准备好手机和电脑(电脑登 Github,手机装 APP),开始操作。

四、详细步骤

整个过程分“进入安全设置→选择验证方式→扫码绑定→生成恢复码→验证生效”五步

(一)进入 Github 安全设置页面

电脑端登录 Github 后,按以下路径进入设置:

  1. 点击右上角头像,在下拉菜单里选“Settings”——这个入口很明显,不用翻找;

  2. 左侧菜单栏拉到最下面,找到“Password and authentication”(密码和认证),点击进入;

  3. 在“Two-factor authentication”板块,点击“Enable two-factor authentication”(开启双因素认证),进入下一步。

如图

/img/github-enable-2fa/0302.png
2FAcode

(二)选择验证方式(APP 优先)

方式一. 认证 APP 验证(推荐)

  1. 手机上打开提前装的 Microsoft Authenticator,点击“+”号(右上角),选“扫描条形码”;

    手机应用商店搜索下载:Microsoft Authenticator

    /img/github-enable-2fa/0301.jpg
    TOTP应用

    注意前往别下错了,如上图,开发者是微软(中国)

  2. 电脑端页面会显示一个二维码,用手机 APP 扫描这个二维码——扫描成功后,APP 会生成一个6位动态验证码(每30秒刷新一次);

    /img/github-enable-2fa/0303.png
    一次性密码代码

  3. 在电脑端“Authentication code”输入框里,输入 APP 上显示的6位码,点击“Verify”验证。

    /img/github-enable-2fa/0304.png
    下载恢复码

如果扫码失败(比如二维码模糊),可以点击“enter this text code instead”,会显示一串文本密钥,在 APP 里选“手动输入密钥”,把这串密钥输进去,同样能绑定成功。

最后点击 i have saved my recovery codes

进入步骤3,直接点击 done 即可完成 2FA 认证

方式二. 短信验证(可选)

如果暂时没有认证 APP,可先选短信验证,后续再改回 APP 验证:

  1. 在验证方式页面选“Text message”,输入手机号(带国家代码,中国是 +86),点击“Send code”;

  2. 手机收到短信验证码后,输入到电脑端输入框,点击“Verify”验证。

如果你的手机接收不了 github 的短信,那么此方式将不适合你

方式三:浏览器扩展

在浏览器安装 Authenticator 2FA client 拓展

不同浏览器的拓展的安装方式不同

        Microsoft Edge 加载项

        搜索:Authenticator

        这里测试使用的是:【Authenticator: 2FA Client】‪2,000,000+‬ 个用户

建议使用用户量比较多的拓展,才安全可靠

认证方式几乎和方式一 TOTP 应用一致,唯一不同的时是在扫描二维码的步骤,手机是直接APP扫码,

浏览器拓展需要点击拓展应用上的扫码功能进行扫描,然后就会生成【一次性密码代码】

(三)保存恢复码(关键)

验证通过后,Github 会生成10个8位的“恢复码”,这是 账号丢失的最后保障——比如手机丢了、APP 卸载了,就能用恢复码登录并重新设置 2FA。

  1. 点击“Download”下载恢复码(是一个 TXT 文件),同时建议“Print”打印出来,存到家里的保险柜或加密云盘;

  2. 一定要逐字确认恢复码能打开且清晰——别存完就不管了,万一需要时文件损坏就麻烦了;

  3. 勾选“I have saved my recovery codes”,点击“Next”进入最后一步。

这是一个非常关键的步骤,如果你不小心卸载了认证 APP,那么此恢复码可以帮助你登录

(四)验证生效,完成开启

最后一步是“测试 2FA”,确保功能正常:

  1. 点击“Enable two-factor authentication”,Github 会提示你用刚设置的验证方式获取验证码;

  2. 输入 APP 生成的6位码(或短信收到的码),点击“Verify”;

  3. 页面显示“Two-factor authentication is enabled”,说明开启成功!

开启后,下次登录 Github 时,输入密码后会多一步“输入 2FA 验证码”,输对才能登录,安全性直接拉满。

五、进阶:恢复码的正确使用

仅当验证方式失效时用

比如手机丢了/认证 app 卸载了/换手机了,无法获取 APP 验证码,这时用恢复码登录:

  1. Github 登录页面输入账号密码后,会提示“输入 2FA 验证码”,点击下方“Use a recovery code instead”;

  2. 输入之前保存的任意一个恢复码(10个恢复码可以用一次,用完就失效);

  3. 登录成功后,立刻去“Password and authentication”里重新设置 2FA 验证方式(比如换个手机装 APP 绑定)。

注意:每个恢复码只能用一次,用过后及时删掉,避免重复使用失效。

常见问题

Q1. 扫码绑定 APP 时,验证码一直提示无效?

场景:手机 APP 扫描二维码后生成验证码,输入到 Github 却提示“无效”,反复试都不行。

原因:手机时间和电脑时间不同步,导致生成的验证码和 Github 预期的不一致(2FA 验证码基于时间戳生成)。

解决:

① 手机打开“设置→日期和时间”,开启“自动设置日期和时间”(同步网络时间);

② 关闭 APP 重新打开,生成新的验证码再输入,一般就能解决。

Q2. 手机丢了/APP 卸载了,没有验证码登不上账号?

场景:手机丢了,重新买了手机,之前的认证 APP 没备份,登录时要验证码但拿不到。

解决:用之前保存的恢复码登录,步骤:

  1. Github 登录页面输入账号密码,点击“Use a recovery code instead”;

  2. 输入任意一个未使用过的恢复码,登录成功;

  3. 立刻去“Password and authentication”里重新绑定新的认证 APP,同时生成新的恢复码(旧的恢复码失效)。

如果恢复码也丢了,只能联系 Github 官方客服,提供账号注册邮箱、历史仓库链接等证明,流程很麻烦,所以恢复码一定要存好!

Q3. 可以关闭 2FA 吗?关闭后有影响吗?

场景:觉得每次登录输验证码麻烦,想关闭 2FA。

解答:可以关闭,但强烈不建议,关闭后账号安全性会大幅下降。如果实在要关,步骤:

进入 Github → Settings → Password and authentication → Two-factor authentication → Disable

关闭后,下次登录只需要密码,但建议关闭后立刻重新开启(比如换个更方便的认证 APP),不要长期处于无 2FA 状态。

⚠️:现在好像不给关闭了,强制要求开启了….

Q4. 用短信验证时,收不到验证码怎么办?

场景:选择短信验证,输入手机号后点击“Send code”,等了很久都没收到短信。

原因:Github 短信服务在部分地区可能不稳定,或手机号被误判为垃圾号码。

解决方案:

① 换个时间再试(比如10分钟后),或重启手机;

② 优先改用“认证 APP 验证”(离线可用,不受短信影响);

③ 如果是境外手机号,建议换成境内手机号尝试。

Q5. 恢复码丢了,还能重新生成吗?

场景:之前保存的恢复码找不到了,担心后续验证方式失效后登不上账号。

解决:可以重新生成,步骤:

  1. 登录 Github 后,进入“Settings → Password and authentication”;

  2. 在“Two-factor authentication”板块,点击“Generate new recovery codes”;

  3. 输入密码确认身份后,会生成新的10个恢复码,旧的恢复码会立刻失效;

  4. 保存新的恢复码,替换掉旧的。

总结

Github 账号里的代码是开发者的“资产”,2FA 这种基础防护花10分钟就能搞定,却能避免后续巨大的损失。

如果还没开启,现在就跟着教程操作,做完记得把恢复码存好~ 有其他问题欢迎在评论区留言!

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/github-enable-2fa/

备用原文链接: https://blog.fiveyoboy.com/articles/github-enable-2fa/