You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gitlab通过SSH推送代码报错:私钥与公钥不匹配如何排查?

问题原因及解决办法

核心问题是本地私钥/c/Users/user/.ssh/id_rsa与你添加到GitLab账户的公钥不匹配,错误提示第一条已经明确指出这一点,后续的Permission denied是这个问题导致的连锁反应。

可能的具体原因:

  • 你上传到GitLab的公钥,并非本地id_rsa对应的id_rsa.pub(比如生成了多组密钥,复制时选错了文件,或者复制公钥内容时遗漏/多了字符、换行)
  • 本地私钥文件id_rsa被手动修改、损坏,导致与原配对公钥校验失败

解决步骤:

  1. 验证本地密钥对是否匹配
    执行以下命令,根据私钥生成对应公钥:

    ssh-keygen -y -f /c/Users/user/.ssh/id_rsa
    

    将输出的内容和GitLab账户中已添加的公钥对比,若不一致,说明确实不匹配。

  2. 重新生成并上传正确的密钥对
    生成新的RSA密钥对(替换为你的邮箱):

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    按回车默认保存到/c/Users/user/.ssh/目录,若设置密码则输入(可选)。然后打开/c/Users/user/.ssh/id_rsa.pub,复制全部内容,粘贴到GitLab账户的SSH密钥设置页面。

  3. 确保SSH代理加载正确私钥
    执行命令加载私钥:

    ssh-add /c/Users/user/.ssh/id_rsa
    

    若设置了密钥密码则输入,之后测试GitLab连接:

    ssh -T git@gitlab.com
    

    成功时会显示你的GitLab用户名。

  4. 检查仓库远程地址正确性
    确认仓库的origin地址格式正确:

    git remote -v
    

    正常地址应为git@gitlab.com:你的用户名/项目名.git,若有误则用以下命令修正:

    git remote set-url origin git@gitlab.com:你的用户名/项目名.git
    

内容的提问来源于stack exchange,提问作者Вадим Яковлев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:50:35