使用SSH恢复GitLab账号2FA失败,提示未启用2FA的解决问询
问题解答
错误原因确认
是的,这个报错确实说明你执行命令时连接到了未启用2FA的GitLab账号。因为你的电脑配置了多个GitLab账号的SSH密钥,默认情况下SSH会优先使用第一个匹配的密钥进行连接,而这个密钥对应的账号恰好没有启用2FA,所以返回了该错误。
解决步骤
1. 验证当前SSH连接的账号
先执行以下命令确认当前SSH连接对应的GitLab用户名:
ssh git@gitlab.com whoami
返回的用户名如果不是你启用2FA的目标账号,就坐实了连接错账号的问题。
2. 为目标账号指定SSH密钥执行命令
有两种方式可以强制使用目标账号的SSH密钥:
方式一:临时指定密钥执行命令
直接在命令中指定目标账号对应的私钥文件路径:
ssh -i ~/.ssh/你的目标账号私钥文件名 git@gitlab.com 2fa_recovery_codes
比如你的目标私钥是id_rsa_maya,命令就是:
ssh -i ~/.ssh/id_rsa_maya git@gitlab.com 2fa_recovery_codes
方式二:配置SSH Config永久指定(推荐)
编辑SSH配置文件(路径:~/.ssh/config,Windows为C:\Users\<你的用户名>\.ssh\config,没有则新建),添加以下内容:
Host gitlab-my-target HostName gitlab.com User git IdentityFile ~/.ssh/你的目标账号私钥文件名
其中gitlab-my-target是自定义的主机别名,后续可以用这个别名快速连接目标账号。
保存配置后,执行以下命令生成恢复码:
ssh gitlab-my-target 2fa_recovery_codes
内容的提问来源于stack exchange,提问作者Maya Hamdan
相关产品推荐
相关产品推荐

