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

我有一个私人的回购,我想安装在我的package.json文件。

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

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

这里有几个解决scheme:

  • 添加一个条目到你的~/.ssh/config 。 例如:

    主机bitbucket.org
          IdentityFile〜/ .ssh / bitbucket_key
         身份只有是的
    
  • 使用ssh-agent并将您的密钥事先添加到代理实例。

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

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

您可以通过将私人回购点复制到另一个目录来完成此操作:

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

你可能会被问到是否要继续,inputyes并input,然后bitbucket.org是可信的。 返回到您的项目目录,然后重试npm install 。 这是mscdex的答案为我工作所需要的。

添加可信主机还有其他方法,但是这样做除了validation您是否可以实际获得所需的专用回购。