我尝试在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 上遇到同样的问题。
答案 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 \