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

Git拉取/推送GitLab私有仓库报Permission denied (publickey)问题咨询

问题根因

从你提供的ssh -Tv git@gitlab.com执行日志可以明确两个核心信息:

  1. SSH密钥本身和GitLab账号的绑定是正常的,手动执行SSH命令输入私钥密码后可以正常完成鉴权
  2. 报错核心原因是你的SSH私钥设置了访问密码(passphrase),且系统未运行SSH密钥代理服务缓存密码,Git执行推拉操作时无法唤起交互终端输入私钥密码,导致鉴权失败。

排查思路

  • 优先确认本地SSH代理服务运行状态
  • 其次确认本地仓库的远程地址是否为SSH协议格式
  • 最后排查SSH配置文件是否存在异常规则

解决方案

方案1:启用ssh-agent缓存私钥密码(推荐,兼顾安全与易用性)

  1. 以管理员身份打开PowerShell,执行命令启动ssh-agent服务:
Start-Service ssh-agent
  1. (可选)设置ssh-agent开机自启,避免每次系统重启后都要重新启动服务:
Set-Service -Name ssh-agent -StartupType Automatic
  1. 将本地私钥添加到ssh-agent缓存,执行后输入你设置的私钥密码即可完成缓存:
ssh-add C:\Users\ASUS\.ssh\id_rsa
  1. 重新执行Git推拉操作验证是否恢复正常。

方案2:移除私钥访问密码(安全性较低,仅适合临时测试使用)

如果不需要私钥密码保护,可以直接移除passphrase,执行命令后输入旧密码,新密码留空连续回车两次即可:

ssh-keygen -p -f C:\Users\ASUS\.ssh\id_rsa

方案3:校验仓库远程地址

如果上述操作都无效,检查本地仓库的远程地址是否为SSH协议:

  1. 执行命令查看远程地址配置:
git remote -v
  1. 如果origin对应的地址是https://gitlab.com/开头的HTTPS格式,替换为SSH格式即可:
git remote set-url origin git@gitlab.com:你的GitLab用户名/仓库名称.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 14:18:03