package.json中git依赖项的权限被拒绝

时间:2013-07-06 18:04:48

标签: node.js

我尝试在package.json中设置git依赖项:

"dependencies": {
    "myLib": "git+ssh://git@domain.com:user/myLib.git"
  }

当我sudo npm install时,我收到了错误:

Warning: Permanently added the RSA host key for IP address 'myIp' to the list of known hosts.

 Permission denied (publickey).

尽管我可以成功地将同一个lib克隆到该机器上:

git clone git@domain.com:user/myLib.git

所以我有有效的ssh密钥。

我的操作系统 OSX ,但我在 Linux 上遇到同样的问题。

4 个答案:

答案 0 :(得分:4)

我应该在没有npm install的情况下运行sudo

如果不能,则更改node.js apps文件夹的权限:

sudo chown -R `whoami` ~/pathToAll/node/apps.

因此git ssh依赖项在package.json

中运行良好

答案 1 :(得分:0)

这是一个允许继续使用sudo npm install的解决方案。

将以下内容添加到文本文件/root/.ssh/config

Host domain.com
    User git 
    Port 22
    Hostname domain.com
    IdentityFile "/home/user/.ssh/id_rsa"
    TCPKeepAlive yes 
    IdentitiesOnly yes 
    StrictHostKeyChecking no

即使使用sudo命令执行sudo npm install之类的操作,此配置也会引用原始密钥文件。

答案 2 :(得分:0)

避免使用     sudo npm install 改为使用     npm install

*每当使用github存储库作为项目的依赖项时。

答案 3 :(得分:0)

解决了Windows 10上此问题的一种情况。

问题是我将git bash〜(home)文件夹配置为 c:\ home ,并期望git在以下情况下找到 c:\ home.ssh 文件夹git从 npm 运行,即使从git bash开始,git也使用 C:\ Users \ .ssh

解决方案是将我的.ssh文件夹(包含我的ssh密钥)复制到C:\ Users \