不要随便开2FA!记X和GitHub账号找回
先说结论:不要随便开两步认证(2FA),没谁一天没事儿干,来盗你账号。
开始吧
讲一讲前提背景,我电脑坏了后一直没管,手机上倒是登着 X 和 GitHub 的,都开了 2FA。直到最近换了新手机,还没把所有应用下回来登录好账号,就把旧手机格式化了。(不要学我!)
X
X 用通行密钥登录,它说我的通行密钥有问题,换个方式登录,没办法,就用用户名加密码的方式登录。结果要验证,提供三种方式:
- 身份验证器
- 备份代码
- 通行密钥
我之前用的微软身份验证器,但一直没有开云备份,导致把 Microsoft Authenticator 下回来竟然什么也没有,第一条方法失效。
刚刚说了把旧手机格式化了,现在已经没有已登录的设备,第二条方法失效。
至于通行密钥点开后它就闪退出来了,也是不行的,第三条方法失效。
所有方式全部没用。
不过X还是比较人性化,在X Help网站有恢复的选项
https://help.x.com/en/forms/account-access/regain-access/2fa-problem
按要求提供用户名和电子邮件再验证邮箱后,很快给我发来了邮件,原文如下:
—-—-—-—
Reply above this line.
Hello,
In order for us to help you in resetting your two-factor authentication, we’ll need to confirm you’re the account owner:
Please log in on https://x.com (from a desktop computer or a mobile web browser) with your username and password.
We should receive a notification on our end, which will help us confirm that you’re the account owner.
Please reply to this email once you’ve attempted to log in, and we’ll continue to help.Thanks,
X Support
我再一次进行了登录请求,然后回复了这封邮件。
To X Support Team,
Hello,
I have attempted to log in to my X account using my username and password as requested.
Please let me know the next steps to help regain access to my account.
Thank you.
处理得很快,我回复的第二天晚上就给我把2FA关闭了。
—-—-—-—
Reply above this line.
Hello,
Login verification is now turned off for your account, and you should be able to log in without a code.
When you’re back in your account, please take a minute to double-check that your mobile settings are correct.
Thanks,
X Support
有趣的是,另一封是 verify@x.com 发来的,但为什么还是 Twitter。😂
最后用密码和邮箱验证登上啦。
Github
GitHub 就要难多了,因为 GitHub Docs 明确说了:
出于安全原因,如果你丢失了双因素身份验证的凭据或无法访问你的帐户恢复方法,GitHub 支持 将无法恢复访问启用了双因素身份验证的帐户。
登录 GitHub 输完密码后,让我在 GitHub Mobile 上验证数字。
但前面说了,手机格式化了,没法用 GitHub Mobile,要在新手机上登录 GitHub Mobile,要先登录 github.com,登录 github.com 又要用 GitHub Mobile 验证……死循环了属于是 。
也可以用身份验证器,显然我也不行,上文已说。
或者用 2FA 恢复代码,那个文件我早就搞丢了。(下次这些重要的东西一定要云端备份一份!)
按登录时提示的说法,我要恢复的话验证完电子邮件必须用以下三个因素之一:
- 设备验证
- SSH Key
- Personal Access Token
“设备验证”直接是不行的,灰色按钮,应该是新设备的缘故。
SSH Key 在电脑上,现在没法用。
只能用 PAT(Personal Access Token)了,关键是我没也保存啊!
我冥思苦想后,记得之前的手机备忘录里好像有,而且我好像开了云同步的,赶紧登录华为云空间(cloud.huawei.com),果然有,拿去用结果说不行,不是为啥呀?
ChatGPT 说 GitHub 要的是 Classic Personal Access Token(经典 PAT),我的是Fine-grained Personal Access Token(细粒度 PAT)。
咋办?(⋟﹏⋞)
我想起还有个地方可能有,我的博客git仓库,电脑没了后,我把源文件下载到手机上,用 Obsidian 写博客,用“obsidian-git”插件来提交和推送到 GitHub,那需要一个 Personal access token 来访问,我之前就新建了一个 token。
我把 Obsidian 下回来,打开仓库,它自动识别了插件,打开 Git 插件的设置,发现竟然不让我再次查看 token。(⋟﹏⋞)
我更改了一个文件的内容,竟然发现提交推送成功了!这说明那个 token 在这个设备上,很有可能就在插件里,我打开插件的 data.json 发现,什么设置内容都有,就是没有 token!其他文件也没有,.git文件夹完全无从下手(其实是我不熟git)。
问AI也没多大用,有些问题要自己动脑解决,ChatGPT 一直从其他更复杂的方向给我报忧,如说token可能存储在 Android 安全存储中的,几乎不可能读出明文。我相信没这么复杂,因为我只同步了图片、文档等内容,小米换机应该也不会同步其他的系统内容吧。
ChatGPT 也还是给我了一点启发,它说 Obsidian 是我唯一能和账号有联系的地方了,我忽然就想到一个实际不太可行的方式,我在手机上下一个 Linux 模拟器,用那个我不知道但存在的密钥操作,毕竟是 Git 不是 GitHub CLI,当然是不行的。但 ChatGPT 补充说,对于 Git 来说,有一种非常常见(虽然不推荐)的保存方式:
1 | [remote "origin"] |
这种情况下:
- Git push 不需要额外询问密码;
- 换设备只要 .git 目录一起复制过去,仍然可以 push;
- Obsidian Git 本身不需要保存 Token;
- data.json 当然找不到。
于是我赶紧找了个终端 App,用 ChatGPT 推荐的 Termux,授权存储后pkg install git安装Git,然后进入博客目录,git remote -v后竟然真的就是https://用户名:Token@github.com/用户名/仓库.git这样的,token 就出来了。(=^▽^=)
然后 ChatGPT 就告诉我这说明 Obsidian Git 把token保存到.git/config文件里的,我一看还真是,为什么不早点告诉我?
总之,也是提交成功了,就等1到3天给我通过请求了。

总结
做好云端备份,不太建议开 2FA,密码加邮箱验证已经足够安全了。
换手机别那么急着格式化。
吃一堑长一智,我下次肯定不会了!
- 标题: 不要随便开2FA!记X和GitHub账号找回
- 作者: 流月
- 创建于 : 2026-07-17 00:00:00
- 更新于 : 2026-07-18 13:25:55
- 链接: https://blog.sitrmoo.com/Don't-Carelessly-Enable-2FA!-Remembering-Recovering-X-and-GitHub-Accounts/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。