GitLab免费账户生成2FA恢复码遇Permission denied错误求助
解决GitLab 2FA恢复码生成失败(Permission denied (publickey))的问题
原因分析
你用GitExtensions能正常执行fetch/push,说明它采用的是HTTPS协议+存储的凭据完成认证,而非SSH密钥认证。你的本地SSH密钥并未配置到GitLab账户中,所以执行SSH命令时会被拒绝。
解决步骤
1. 检查本地SSH密钥是否存在
打开终端执行:
ls -la ~/.ssh
若能看到id_rsa(私钥)和id_rsa.pub(公钥)文件,说明已有密钥;若没有,生成新密钥:
ssh-keygen -t rsa -b 4096 -C "你的GitLab绑定邮箱"
全程按回车使用默认设置即可。
2. 将SSH公钥添加到GitLab账户
- 复制公钥内容:
cat ~/.ssh/id_rsa.pub - 登录GitLab网页(你能通过GitExtensions操作,说明账户可正常登录,用HTTPS方式登录即可),进入用户设置 → SSH密钥,粘贴复制的公钥,设置标题后保存。
3. 验证SSH连接有效性
执行:
ssh -T git@gitlab.com
若输出Welcome to GitLab, @你的用户名!,说明SSH认证成功。
4. 生成新的2FA恢复码
再次执行命令:
ssh git@gitlab.com 2fa_recovery_codes
按提示确认后即可获取新的恢复码,务必将这些恢复码存到安全位置。
备选方案(SSH配置有困难时)
直接通过GitLab网页操作:
- 登录GitLab后,进入用户设置 → 账户 → 两步验证
- 点击生成新的恢复码,按页面提示操作即可(前提是你当前能正常登录账户,而你能使用GitExtensions操作,说明账户登录无问题)
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

