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

Windows下npm install拉取git仓库依赖报publickey权限错误如何解决

问题原因与解决方法

根因

  • npm调用git的子进程未正确继承你设置的GIT_SSH用户环境变量:Windows环境下修改用户环境变量后若未完全重启终端/IDE,或者IDE内置终端未加载最新环境变量,会导致npm调用git时依旧使用git内置的ssh客户端,而非你指定的系统OpenSSH,引发公钥认证失败。
  • 部分npm版本运行时会重置部分系统环境变量,导致GIT_SSH配置不生效。
  • 若你生成SSH密钥时设置了口令,npm的无交互子进程无法唤起Windows ssh-agent的验证弹窗,也会导致认证被拒绝。

解决步骤

  • 第一步:确认环境变量生效
    完全关闭所有终端、IDE、代码编辑器后重新打开,在终端执行以下命令验证GIT_SSH配置:
    PowerShell环境执行:echo $env:GIT_SSH
    CMD环境执行:echo %GIT_SSH%
    确认输出为系统OpenSSH的路径,默认路径为C:\Windows\System32\OpenSSH\ssh.exe,如无输出请重新配置用户环境变量后重启设备。
  • 第二步:配置git全局指定ssh客户端
    执行git全局配置命令,优先级高于环境变量,npm调用git时也会读取该配置:
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
    
    路径替换为你本地OpenSSH ssh.exe的实际存储路径。
  • 第三步:配置npm使用系统git
    执行命令指定npm调用的git程序为你本地安装的系统版本,避免使用npm内置的git:
    npm config set git "C:\Program Files\Git\cmd\git.exe"
    
    路径替换为你本地git.exe的实际存储路径。
  • 第四步:验证ssh密钥已加载
    执行命令确认ssh-agent中已添加对应仓库的SSH密钥:
    ssh-add -l
    
    如输出为空,执行ssh-add ~/.ssh/你的私钥文件名手动添加密钥。
  • 第五步:清理缓存重新安装
    执行以下命令清理npm本地缓存后重新执行安装:
    npm cache clean --force
    rm -rf node_modules package-lock.json
    npm install
    

兜底方案

如果上述操作后依旧报错,可以将package.json中对应依赖的git仓库地址替换为HTTPS协议地址,跳过SSH认证流程直接安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:27:04