web-dev-qa-db-ja.com

npmのインストールに使用するsshキーを指定する方法はありますか

Package.jsonファイルにインストールするプライベートリポジトリがあります。

"private-module": "git+ssh://[email protected]:private/private-module.git"

デフォルトでは、npmはデフォルトの秘密鍵を使用します。 npm installの実行時にnpmが使用するsshキーを指定できるようにします。これを行う方法はありますか?

22
Vadim

以下にいくつかの解決策を示します。

  • ~/.ssh/configにエントリを追加します。例えば:

     Host bitbucket.org 
     IdentityFile〜/ .ssh/bitbucket_key 
     IdentitiesOnly yes 
    
  • ssh-agentを使用して、事前にキーをエージェントインスタンスに追加します。

  • ssh-ident のようなものを使用して、現在の作業ディレクトリまたはssh-identに渡された引数に基づいてsshエージェントとIDを動的に選択します。 READMEに記載されているように、通常はssh-identをsshにエイリアスして、すべての場所で自動的に使用されるようにします。

29
mscdex

Mscdexの answer の最初の部分を変更した後、npm installコマンドが機能する前に、既知のホストのリストにホストを追加する必要がある場合があります。

これを行うには、プライベートリポジトリを別のディレクトリに複製します。

git clone ssh://[email protected]:private/private-module.git

続行するかどうかを尋ねられ、yesと入力して入力すると、bitbucket.orgが信頼されます。プロジェクトディレクトリに戻り、npm installを再試行します。これは、mscdexの答えが私のために働くために必要だったものです。

信頼できるホストを追加する方法は他にもありますが、これにより、目的のプライベートリポジトリに実際にアクセスできることを確認できます。

2
mwotton

それ以外の場合は、.npmrcファイルでNPM Tokenを使用できます。

// .npmrc
//registry.npmjs.org/:_authToken=${YOUR_NPM_TOKEN}

ソース: https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules

0
Wilk