Есть ли способ указать, какой ключ 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 для работы для меня.

Существуют и другие способы добавления доверенных хостов, но это делает это в дополнение к проверке того, что вы действительно можете получить желаемое частное репо.