不要随便开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。😂
X 2FA Closed Email最后用密码和邮箱验证登上啦。

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
2
[remote "origin"]
url = https://用户名:Token@github.com/用户名/仓库.git

这种情况下:

  • 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天给我通过请求了。
GitHub recover account

总结

做好云端备份,不太建议开 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 进行许可。
评论
目录
不要随便开2FA!记X和GitHub账号找回