Есть ли способ указать, какой ключ ssh следует использовать для установки npm
У меня есть частное репо, которое я хочу установить в файл package.json.
"private-module": "git+ssh://[email protected]:private/private-module.git"
По умолчанию npm использует ваш личный ключ по умолчанию. Я хочу, чтобы указать, какой ключ ssh npm должен использовать при запуске npm install
. Есть ли способ сделать это?
Ответы
Ответ 1
Вот несколько решений:
-
Добавьте запись в свой ~/.ssh/config
. Например:
Host bitbucket.org
IdentityFile ~/.ssh/bitbucket_key
IdentitiesOnly yes
-
Используйте ssh-agent
и заранее добавьте свой ключ к экземпляру агента.
-
Используйте что-то вроде ssh-ident для динамического выбора агентов и идентификаторов ssh на основе текущего рабочего каталога или аргументов, переданных ssh-ident. Как говорится в их readme, вы обычно называете ssh-ident ssh
так, чтобы он автоматически использовался везде.
Ответ 2
После внесения изменений в первую часть mscdex answer вам может потребоваться добавить хост в список известных хостов - перед командой npm install
будет работать.
Вы можете сделать это, клонировав частное репо в другой каталог:
git clone ssh://[email protected]:private/private-module.git
Возможно, вас спросят, хотите ли вы продолжить, введите yes
и введите, тогда bitbucket.org будет доверен. Вернитесь в каталог проекта и повторите попытку npm install
. Это то, что было необходимо для ответа mscdex для работы для меня.
Существуют и другие способы добавления доверенных хостов, но это делает это в дополнение к проверке того, что вы действительно можете получить желаемое частное репо.