npm instalação privada Gitlab Repo Permissão negada (publickey) em Powershell

1

Eu tento instalar um repositório particular do gitlab via npm para outro projeto de nó. O comando é npm install --save gitlab:my-project#master Isso falha com

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.

Eu tenho a seguinte configuração: Windows 10, git e Powershell.

Usar comandos git diretamente no Powershell está funcionando bem, por exemplo git pull pede a senha da minha chave privada e funciona. Todas as outras coisas do git estão funcionando bem, exceto pelo comando npm install , que parece usar o git internamente.

Se eu usar o git bash, que é instalado com o git no Windows, posso executar o comando npm e instalar o repositório privado. Só falha dentro do Powershell.

No entanto, pode-se dizer: use git bash, mas de alguma forma estou acostumado com o PowerShell. :)

    
por Philipp 22.03.2018 / 14:56

1 resposta

1

Permission denied (publickey).

Isso significa que sua chave pública atual não pode ser autenticada pelo servidor remoto.

Verifique o acesso via SSH

Executar:

ssh -T [email protected]

para ver se você está autenticado com gitlab.com corretamente. Caso contrário, verifique se você adicionou seu publickey à sua conta do GitLab.

Use git+ssh://

Use git+ssh:// , em vez de git:// , por exemplo:

npm i -S git+ssh://[email protected]/my-project/repo.git

Veja: Instale o módulo npm do repositório privado do GitLab .

Forneça identidade diferente via SSH

Para listar suas identidades atuais, execute:

ssh-add
ssh-add -L

Para adicionar identidade diferente, execute: ssh-add ~/.ssh/MyOtherKey.pem

Verifique npm

Além disso, verifique se você não está usando proxy para seu npm . Verifique a configuração por npm config list .

Use npm Enterprise

Você pode usar o npm Enterprise para se conectar ao seu sistema existente de autenticação , como o OAuth2 (para o GitLab), GitHub Enterprise e outros. Você também pode verificar o plug-in de autenticação existente (para GitLab, consulte: npme-auth-gitlab ) ou escreva um para autenticação personalizada .

Use token pessoal

Quanto à solução alternativa, você pode criar seu token de acesso pessoal ou OAuth2 ( GitLab / < href="https://docs.gitlab.com/ee/api/README.html#oauth2-tokens"> OAuth2 ; GitHub / OAuth ) e usar junto com seu URL de repositório privado. O token OAuth permitirá que você acesse o repositório via API e token pessoal diretamente por meio de URL, por exemplo,

  • GitHub: https://[email protected]/my-project/repo
  • GitLab: https://gitlab.com/my-project/repo?private_token=<PERSONAL_ACCESS_TOKEN>
por 22.03.2018 / 15:12