有没有办法指定哪个 ssh 密钥应该用于 npm install

新手上路,请多包涵

我有一个私人仓库,我想将它安装在我的 package.json 文件中。

 "private-module": "git+ssh://git@bitbucket.org:private/private-module.git"

默认情况下,npm 使用您的默认私钥。我希望能够指定在运行 npm install 时 npm 应该使用哪个 ssh 密钥。有没有办法做到这一点?

原文由 Vadim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
2 个回答

以下是一些解决方案:

  • 在您的 ~/.ssh/config 中添加一个条目。例如:
  托管 bitbucket.org
       身份文件 ~/.ssh/bitbucket_key
       身份只有是

  • 使用 ssh-agent 并事先将您的密钥添加到代理实例。

  • 使用 ssh-ident 之 类的东西根据当前工作目录或传递给 ssh-ident 的参数动态选择 ssh 代理和身份。正如他们的自述文件所述,您通常会将 ssh-ident 别名为 ssh 以便在任何地方自动使用它。

原文由 mscdex 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 mscdex 答案 的第一部分进行更改后,您可能需要将主机添加到已知主机列表中 - 在 npm install 命令起作用之前。

您可以通过将私有存储库克隆到另一个目录来执行此操作:

git clone ssh://git@bitbucket.org:private/private-module.git

系统可能会询问您是否要继续,键入 yes 并输入,然后 bitbucket.org 是可信的。返回您的项目目录并重试 npm install 。这就是 mscdex 的答案对我有用所需要的。

还有其他方法可以添加受信任的主机,但是除了验证您是否确实可以访问所需的私有存储库之外,这样做也是如此。

原文由 mwotton 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题