GitHub双重验证(2FA)免手机号验证方案

背景

GitHub 开始逐步要求账号登录时启用双重验证(2FA) ,并且在 2023 年底过后,没有启用双重验证的账号将不能使用

看来,启用双重验证势在必行,但是在启用双重验证的过程中不支持国内的手机号来接收验证码 : (。

经过一番尝试,终于找到了两种解决方法,见下文。

解决方法

按照官方文档说明,要启用双重验证的方法有三种:

  • GitHub APP
  • 短信验证码
  • TOTP应用的一次性验证码

GitHub APP 在国内应用商店无法下载,同时国内手机号无法接收短信验证码,所以我们使用TOTP应用接收一次性验证码来解决。

并且,使用TOTP应用 接收验证码方法是完全免费的。

方法一:微软Authenticator应用接收验证码

微软的Authenticator应用就是一个TOTP应用,支持Android、iOS系统,国内应用商店均可下载。

安装后初次打开出现报错:"由于 Google Pay 服务当前在此设备上不可用,因此无法使用一些功能",可以直接忽略。

在 GitHub 网页上 首页>个人头像>Settings>Password and authentication>Two-factor authentication 位置找到启用双重验证的入口。

打开微软 Authenticator 应用,点击右上角"+"选择"其他账户(Google、Facebook 等)"唤起相机扫码,扫描上面页面的二维码,成功后就在微软 Authenticator 应用上添加了你的 GitHub 账号。

在微软 Authenticator 应用点击刚添加的应用,生成一个一次密码代码 ,在上面页面输入这个验证码,验证通过后就将 GitHub 账号绑定到了微软 Authenticator 应用了。

一定注意:上面这两步操作时一定不要刷新上图这个网页。

绑定成功会到这个页面。

GitHub 给出了一个Recovery Codes 的文件(类似于私钥,一定要保存好)。

点击"I have saved my recovery codes",跳转到绑定成功页面。

后面在登录 GitHub 时若出现要求填写验证码的地方,输入手机上微软 Authenticator 应用生成的验证码即可。

方法二:Chrome/Edge插件接收验证码

Chrome扩展:身份验证器 - Chrome 应用商店 (google.com)

Edge扩展:Authenticator: 2FA Client - Microsoft Edge Addons

根据浏览器自行安装对应版本插件,这个插件相当于一个简洁版的微软 Authenticator 应用。

按照方法一 打开 GitHub 的启用双重验证页面,然后点击插件弹窗右上角的扫码按钮,拖拽框选二维码,即可添加 GitHub 账号,然后在网页验证码窗口输入插件给出的一次性验证码,即可完成绑定

绑定成功 GitHub 同样会给出一个Recovery Codes的文件(类似于私钥,一定要保存好)。

看到上面页面表示绑定成功

后面在登录 GitHub 时若出现要填写验证码的地方,填写这个插件自动生成的验证码即可。

恢复双重验证

如果微软 Authenticator 应用、浏览器插件中的 GitHub 账号被删掉了,或者应用、插件本身被卸载了,则需要进行这一步操作来重新启用双重验证

Recovery Codes 文件随便复制一行,登录进GitHub。

进入设置页面,点击 "Edit",重新添加、绑定验证码生成设备(微软 Authenticator 应用或者浏览器插件),步骤和解决方法中完全一样。

重新添加、绑定验证码生成设备之后,Recovery Codes 文件和之前一样不会重新生成。

参考资料

相关推荐
老兵发新帖3 分钟前
pnpm常见报错解决办法
前端
Sonetto199910 分钟前
Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?它能干哈?
运维·前端·nginx
沐土Arvin11 分钟前
理解npm的工作原理:优化你的项目依赖管理流程
开发语言·前端·javascript·设计模式·npm·node.js
风象南16 分钟前
SpringBoot中3种内容协商策略实现
java·spring boot·后端
ん贤18 分钟前
并发编程【深度解剖】
后端·go·并发
uhakadotcom23 分钟前
跨越速运日调用千万,秒级响应!Flink + OceanBase 实时分析方案全解析
后端·面试·github
好_快26 分钟前
Lodash源码阅读-baseUniq
前端·javascript·源码阅读
不秃的开发媛27 分钟前
前端技术Ajax入门
java·开发语言·前端
牧羊狼的狼32 分钟前
React.memo 和 useMemo
前端·javascript·react.js
uhakadotcom32 分钟前
marimo Python笔记本:让Python交互式编程更简单、更可靠
后端·面试·github