背景
近期由于换了新手机,之前配置好的Authenticator这个App无法使用,导致获取不到二次验证的Authenticator code,登陆不上GitHub,不知道有没有人和我遇到同样的问题?
当我们配置2FA双重验证后,每次登陆github尽管密码输入正确都必须输入2FA生成地一次性验证码。但我们无法获取2FA的验证码时,我们应该如何登陆github,甚至当我们把recovery code也丢失后,该如何登陆我们的github?
解决方案
情形1
当我们无法获取之前设置的2FA(Two-factor authentication*)的验证码时,我们可以使用设置2FA时备份的recovery code进行恢复,下面时具体操作步骤
1.点击下图中的Use a recovery code or begin 2FA account recovery
2.打开设置2FA时保存的github-recovery-codes.txt,此文件保存了Recovery code
3.该文件中有16个Recovery code,可以任意选择一个输入,如下所示
4.点击Verify按钮,即可登陆进入github,如下所示
5.此时,我们可以滚动到页面底部,可以看到Authenticator methods面板,在这里我们就可以重新设置2FA。
情形2
我就是在本地文件系统中翻到了当年的github-recovery-codes.txt,用上述情形1方法恢复账户的。当我们既没有Autentication code并且Recovery code也丢失时,怎么办?
1.点击Use a recovery code or begin 2FA account recovery链接
2.点击上图中地Try 2FA account recovery, or unlink your account email address(es) 链接
3.根据上图可知,在没有Recovery code的情况下我们可以通过3个步骤来恢复我们的github*账号
- 验证github账号绑定的邮箱
- 可以使用以下三种方式之一验证:常用的主机、github中设置的ssh key、personal access token
- github客服将在1-3天内人工审核上述信息,如果审核成功,则会发送邮件通知我们
4.点击绿色的I understand, get started按钮
5.点击绿色的Send one-time password按钮,向github账号绑定地邮箱发送验证码
6.打开电子邮箱,输入邮件中的验证码
7.点击绿色的Verify email address按钮
8.这里有3中方式来进行验证
方式一、使用经常登陆或最后一次登陆github的设备验证
1)点击上图中的Verify with this device 按钮,采用这种方式必须使用自己经常登陆或最后一次登陆成功的电脑执行这些操作。
2)等待接收github发送地邮件,大概需要1-3个工作日
方式二、使用在github中设置的ssh key验证
1)点击上图中的SSH key
2)打开github中配置的ssh key中对应地电脑的终端,输入如下命令
ssh -T git@github.com verify
Please provide the following verification token to GitHub Support.
AHDLSHSHDSKHINFVVQZYULPQ3AVKQNZGKPLUSUIUHJSDJSGHKSDJSHDSVJNFAV623FPHHSJHDSHKSHDSKGDSUYEG
3)然后将上述命令地输出复制粘贴到上图的多行文本框中
4)点击绿色的Verify and submit for review按钮
5)等待接收github发送地邮件,大概需要1-3个工作日
方式三、使用github中设置的Personal access token进行验证
1)该方法需要github账号曾经设置过Personal access token,否则该选项是禁用状态。如果是可用状态,点击Personal access Token。
2)在新打开的页面中,输入你的Personal access token,点击绿色的Verify and submit for review按钮
3)等待接收github发送地邮件,大概需要1-3个工作日
总结
- 2FA(Two-factor authentication)失效或者无法获取时如何恢复github账号以及recovery code也丢失的情况下怎么恢复账号,可以使用常登陆github的电脑或者在github中设置过地ssh key或者Personal access token。
- 综上所述,为了我们的github账号安全,我们必须做好以下几点:
- 保证github绑定的邮箱可用,如果旧邮箱不想使用了,记得及时将github账号绑定地邮箱切换为新邮箱。
- 至少给github配置一个ssh key,既可以通过ssh key实现免密执行git操作,又可以保证在丢失recovery code时能进行账号恢复操作。
- 给github配置2FA双重验证,登陆时必须使用2FA生成的一次性临时验证码,保证账号的安全性。
- 配置2FA时会生成16个recovery code,必须备份并保证这些recovery code的安全。