npm: Как установить репозитории npm GitHub с определенными ключами ssh?

#node.js #git #github #npm #ssh

Вопрос:

У меня есть package.json с двумя частными репозиториями GitHub. Они оба должны использовать другой ключ развертывания SSH. Для репозиториев Git без npm это может быть обработано с помощью хоста .ssh/config , например:

 Host repo1.github.com  HostName github.com  IdentityFile ~/.ssh/repo1  Host repo2.github.com  HostName github.com  IdentityFile ~/.ssh/repo2  

Тогда в .git/config репо1 я бы:

 [remote "origin"]  url = git@repo1.github.com:org/repo1.git  

Теперь я подумал, что мог бы просто использовать тот же трюк для зависимостей npm:

 npm install "git ssh://git@repo1.github.com/org/repo1.git#commit-hash" --save  

К сожалению, это даст мне:

 npm ERR! code EUNSUPPORTEDPROTOCOL npm ERR! Unsupported URL Type "ssh:": ssh://git@repo1.github.com/org/repo1.git#commit-hash  

Если я использую вместо этого и будет загружен правильный ключ ssh:

 npm install "git ssh://git@github.com/org/repo1.git#commit-hash" --save  

Тогда все работает так, как и ожидалось. Однако это не решение, так как я хочу иметь возможность запускать npm install , и тогда ему придется использовать два разных ключа.

Как это можно решить?