我有一个私人仓库,我想在我的package.json文件中安装。
"private-module": "git+ssh://git@bitbucket.org:private/private-module.git"
默认情况下,npm使用您的默认私钥。我希望能够在运行npm install
时指定npm应该使用哪个ssh密钥。有没有办法做到这一点?
答案 0 :(得分:27)
以下是一些解决方案:
在~/.ssh/config
中添加条目。例如:
Host bitbucket.org IdentityFile ~/.ssh/bitbucket_key IdentitiesOnly yes
使用ssh-agent
并事先将密钥添加到代理实例。
使用类似ssh-ident的内容,根据当前工作目录或传递给ssh-ident的参数动态选择ssh代理和身份。正如他们的自述文件所述,您通常将ssh-ident别名为ssh
,以便它自动在任何地方使用。
答案 1 :(得分:2)
在mscdex的answer的第一部分中进行了更改后,您可能需要将主机添加到已知主机列表中 - 在npm install
命令起作用之前。
您可以通过将私人仓库克隆到另一个目录来完成此操作:
git clone ssh://git@bitbucket.org:private/private-module.git
可能会询问您是否要继续,输入yes
并输入,然后输入bitbucket.org。返回项目目录并重试npm install
。这就是mscdex为我工作的答案所需要的。
还有其他方法可以添加可信主机,但这样做除了验证您是否可以实际访问所需的私人仓库。
答案 2 :(得分:0)
否则,您可以在.npmrc
文件中使用 NPM令牌:
// .npmrc
//registry.npmjs.org/:_authToken=${YOUR_NPM_TOKEN}
来源:https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules