Npm経由でプライベートgitlabリポジトリを別のノードプロジェクトにインストールしようとしています。コマンドはnpm install --save gitlab:my-project#master
です。これは次のコマンドで失敗します。
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
私は次のセットアップをしています:Windows 10、git、Powershell。
Powershellで直接gitコマンドを使用すると、正常に機能します。 git pull
は私の秘密鍵のパスワードを要求し、それは機能します。内部でgitを使用しているように見えるnpm install
コマンドを除いて、他のすべてのgitのものは正常に機能しています。
Windowsのgitと共にインストールされるgit bashを使用する場合、npmコマンドを実行してプライベートリポジトリをインストールできます。 Powershell内でのみ失敗します。
それでも、git bashを使用することはできますが、PowerShellには慣れています。 :)
私も同じ問題を抱えていました。これは私がそれを解決した方法/私の回避策です:
ssh -T [email protected]
OpenSSH Authentication Service
が無効になっていないことを確認してください(手動開始に設定してください)-この手順が必要かどうかわからないid_rsa
キーからパスワード保護を削除します。 npm install
は、パスワードで保護されたsshキーを処理できません。インストールするリポジトリに読み取り専用 SSHキーを直接追加することをお勧めします。これにより、パスワード保護なしのSSHキーを使用することの危険性が少し低くなります。
キーを定義する~/.ssh/
にconfig
ファイルを追加します。
IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/repository_ssh_key
許可が拒否されました(公開鍵)。
これは、現在の公開鍵をリモートサーバーで認証できないことを意味します。
実行:
ssh -T [email protected]
gitlab.com
で正しく認証されているかどうかを確認します。それ以外の場合は、publickey
をGitLabアカウントに追加したことを確認してください。
git+ssh://
を使用しますたとえば、git+ssh://
の代わりにgit://
を使用します。
npm i -S git+ssh://[email protected]/my-project/repo.git
参照: GitLabプライベートリポジトリからnpm
モジュールをインストール 。
現在のIDを一覧表示するには、次を実行します。
ssh-add
ssh-add -L
別のIDを追加するには、次を実行します:ssh-add ~/.ssh/MyOtherKey.pem
npm
を確認してくださいまた、proxy
にnpm
を使用していないことを確認してください。 npm config list
で設定を確認してください。
npm
Enterpriseを使用するNpm Enterpriseを使用して、既存の authentication システム(OAuth2(GitLab用)、 GitHub Enterprise など)に接続できます。既存のauth-pluginを確認することもできます(GitLabについては、 npme-auth-gitlab
を参照)、または カスタム認証 用に作成することもできます。
回避策として、個人用またはOAuth2アクセストークンを作成できます( GitLab / OAuth2 ; GitHub / OAuth )プライベートリポジトリのURLと一緒に使用します。 OAuthトークンを使用すると、API経由でリポジトリにアクセスでき、URL経由で個人トークンに直接アクセスできます。
https://[email protected]/my-project/repo
https://gitlab.com/my-project/repo?private_token=<PERSONAL_ACCESS_TOKEN>