我有一個私人的repo,我想在我的package.json文件中安裝。有沒有辦法指定哪個ssh密鑰應該用於npm install
"private-module": "git+ssh://[email protected]:private/private-module.git"
默認情況下npm使用您的默認私鑰。我希望能夠在運行npm install
時指定哪個ssh密鑰npm應該使用。有沒有辦法做到這一點?
我有一個私人的repo,我想在我的package.json文件中安裝。有沒有辦法指定哪個ssh密鑰應該用於npm install
"private-module": "git+ssh://[email protected]:private/private-module.git"
默認情況下npm使用您的默認私鑰。我希望能夠在運行npm install
時指定哪個ssh密鑰npm應該使用。有沒有辦法做到這一點?
這裏有幾個解決方案:
添加一個條目,以您的~/.ssh/config
。例如:
Host bitbucket.org IdentityFile ~/.ssh/bitbucket_key IdentitiesOnly yes
使用ssh-agent
和事先添加關鍵代理實例。
使用類似ssh-ident的東西,根據當前工作目錄或傳遞給ssh-ident的參數動態選擇ssh代理和身份。正如他們的自述文件所述,您通常會將ssh-ident別名爲ssh
,以便在任何地方自動使用。
你已經在MSCDEX的answer的第一部分的修改之後,您可能需要將主機添加到已知主機列表 - 前npm install
命令將工作。
您可以通過克隆私人回購協議到另一個目錄中做到這一點:
git clone ssh://[email protected]:private/private-module.git
,如果你想繼續,類型yes
並回車,然後bitbucket.org是信任你可能會問。返回到您的項目目錄並重試npm install
。這是mscdex爲我工作的答案所需要的。
還有其他一些添加可信主機的方式,但這樣做除了驗證您是否可以真正獲得所需的專用回購。
所以三維建議看起來很有希望,但npm似乎忽略了它。我會使用類似於你的第一個建議,基於這個https://gist.github.com/jexchan/2351996 – Vadim 2014-09-20 04:57:59
注意使用.ppk(Puttygen)文件不適用於〜/ .ssh中的IdentityFile /配置文件。它需要是一個OpenSSH文件 – philcruz 2016-01-26 19:15:18
#1爲我工作。我必須使用puttygen來生成密鑰,然後將其導出爲openssh格式。 – 2016-10-11 19:30:02