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

配置GitHub SSH后GitLab推送报错,如何恢复原有SSH公钥设置?

故障根因

配置GitHub SSH时,要么生成的新密钥覆盖了GitLab原本使用的默认id_rsa密钥对,要么SSH客户端未配置多平台密钥映射规则,默认使用GitHub的密钥向GitLab发起认证,导致公钥校验失败,触发Permission denied (publickey)报错。

修复操作步骤
  • 检查本地留存的密钥文件
    执行命令ls ~/.ssh,确认存在两组密钥对:GitLab对应的旧密钥(通常是id_rsa/id_rsa.pub)、GitHub对应的新密钥(如果生成时自定义了名称,比如id_rsa_github/id_rsa_github.pub,按你实际的文件名来)。如果GitLab对应的密钥已经被覆盖删除,重新生成一组命名为id_rsa_gitlab的密钥对,把公钥重新上传到GitLab账户的SSH密钥设置页即可。
  • 配置SSH多域名映射规则
    打开~/.ssh/config文件(不存在就手动新建),写入以下配置内容,注意替换里面的私钥路径为你实际的文件路径:
# GitLab 专属配置
Host gitlab.com
  HostName gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa
  User git

# GitHub 专属配置
Host github.com
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_github
  User git

如果你用的是自建GitLab服务,将上面的gitlab.com替换为你的GitLab实际域名即可。

  • 验证SSH连通性
    执行命令ssh -T git@gitlab.com,如果返回GitLab的欢迎提示,说明认证成功。如果仍有报错,执行chmod 600 ~/.ssh/你的GitLab私钥文件名修正私钥权限后再次验证即可。
  • 测试仓库推送
    进入本地GitLab项目目录,执行git push测试推送,即可恢复正常访问。

内容的提问来源于stack exchange,提问作者RetroCausalElectron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:39:03