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

现有项目执行npm add安装GitHub私有仓库报publickey权限被拒

问题原因排查思路

首先你已经验证了全局SSH认证本身是正常的(ssh -T git@github.com 执行成功、/opt目录下可正常安装),说明问题只出在/app目录下的局部配置覆盖,优先排查以下几个方向:


高频触发原因

最常见的是/app目录的Git本地配置覆盖了全局SSH规则:

  • 如果/app本身是Git工作区,检查 /app/.git/config 中是否存在 core.sshCommand 配置项,或者 [url] 段的重写规则(比如把SSH地址重写为HTTPS、或者指定了其他SSH密钥路径)
  • 检查/app目录下是否存在 .gitconfig 局部配置文件,覆盖了全局的Git认证规则

你可以直接在/app目录执行npm报错中给出的Git命令,快速验证是否为Git本身的配置问题:

git --no-replace-objects ls-remote ssh://git@github.com/company/repository.git

如果该命令直接报错,就可以确定是Git局部配置的问题,如果该命令执行成功,问题则出在NPM的局部配置。


其他排查步骤

如果上述Git命令执行正常,继续按以下顺序排查:

  • 检查/app目录下是否存在 .npmrc 项目级配置文件,是否存在以下特殊配置:
    • 针对@company作用域的私有镜像源配置,导致仓库地址解析错误
    • 配置了Git代理、SSH命令路径等和Git相关的NPM参数
  • 分别在/app和/opt目录执行 npm config list -l,对比两份配置的差异,重点核对和Git、SSH相关的配置项
  • 检查PATH变量是否存在差异:分别在两个目录执行 which git,确认NPM调用的是同一个系统Git二进制,避免/app下node_modules内的第三方Git二进制被优先调用
  • 在/app目录执行安装命令时加上--verbose参数,查看更详细的执行日志,确认NPM调用Git时的环境变量、工作目录是否有异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:02