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 文件和之前一样不会重新生成。

参考资料

相关推荐
陈明勇1 小时前
Go 1.26 新特性回顾:语言增强、工具升级与 Green Tea GC 默认启用
后端·go
咖啡八杯10 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
lizhongxuan12 小时前
AI Agent 上下文压缩利器 Headroom
后端
kyriewen12 小时前
别再 console.log 了:5 个 Chrome DevTools 调试技巧,用过就回不去了
前端·javascript·面试
Csvn14 小时前
SSH 远程管理与安全加固 — 运维的守门之道
后端
IT_陈寒14 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
DigitalOcean15 小时前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
星始流年15 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
菜鸟谢15 小时前
Rust 智能指针完整详解
后端
李惟15 小时前
开源本地通信库,纯客户端 RPC,像聊天一样通信
前端