如何通过已有的GitHub SSH密钥恢复无法验证2FA的账号访问权限?
如何通过已有的GitHub SSH密钥恢复无法验证2FA的账号访问权限?
兄弟,我太懂你这种急得挠头的处境了——手机号换了,2FA验证卡壳,明明SSH还能正常push代码,却登不上账号后台操作,简直憋屈!别慌,你手里的有效SSH密钥确实是个绝佳的突破口,咱们一步步来搞定:
先确认SSH密钥的有效性和关联账号
先在终端里敲这个命令,确保你当前的SSH确实绑定的是你的目标GitHub账号:ssh -T git@github.com正常会返回类似「Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.」的提示,这就说明密钥没问题,和账号是绑定的。
安装并使用GitHub CLI(gh)通过SSH登录
这个工具能帮你绕开网页端的2FA验证,直接用SSH授权登录。安装好之后,在终端执行:gh auth login --git-protocol ssh跟着提示走:选择「GitHub.com」,然后工具会自动检测到你已有的SSH密钥,全程不需要输入密码或2FA验证码,直接就能完成登录。
用gh CLI重置你的2FA设置
登录成功后,你就能直接管理2FA了:- 先看看当前的2FA状态:
gh auth two-factor status - 移除旧的短信验证方式(因为手机号已经用不了了):
gh auth two-factor remove --method sms - 接下来添加新的2FA方式,推荐用TOTP认证应用(比如Google Authenticator、Authy这类),执行:
按照终端提示,在你的认证APP里扫描二维码或者手动输入密钥,验证成功后新的2FA就生效了。要是你还是想用短信验证,就把命令里的gh auth two-factor add --method totptotp换成sms,输入新手机号接收验证码就行。
- 先看看当前的2FA状态:
额外提醒:
搞定之后一定要把新的2FA备用码存到安全的地方(比如密码管理器),下次再换设备或手机号的时候就不用这么慌了!
内容来源于stack exchange




