Acessando repositórios privados do gitlab sobre o NPM no Pé de feijão elástico: falha na verificação da chave do host

2

Antecedentes

Repos:

  • myrepo , no servidor gitlab auto-hospedado, em repo privado com (testado) implantar chaves
  • mainrepo , no servidor gitlab auto-hospedado, em repositório privado que funciona bem.

Seu pacote.json faz referência a myrepo da seguinte forma:

"dependencies": {
    "myrepo": "git+ssh://[email protected]:myusernamespace/myrepo.git"
}

O mainrepo é implantado em uma instância de bean beank do AWS Elastic sem problemas.

Problema

O problema é que o processo de compilação na instância do bean de feijão Elastic está falhando, já que ele não tem permissões para acessar o servidor gitlab

Detalhes do erro

No log da interface do usuário da web da AWS

2016-02-04 13:36:59 UTC+0000    ERROR   During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version.
2016-02-04 13:36:59 UTC+0000    ERROR   Failed to deploy application.
2016-02-04 13:36:58 UTC+0000    ERROR   Unsuccessful command execution on instance id(s) 'i-111111f'. Aborting the operation.
2016-02-04 13:36:58 UTC+0000    INFO    Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
2016-02-04 13:36:58 UTC+0000    ERROR   [Instance: i-111111f] Command failed on instance. Return code: 1 Output: [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/50npm.sh] command failed with error code 1: /opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install npm ERR! git clone [email protected]:myusernamespace/myrepo.git Cloning into bare repository '/tmp/.npm/_git-remotes/git-git-myhost-com-myysername-myrepo-git-99d4209c'... npm ERR! git clone [email protected]:myusernamespace/myrepo.git Host key verification failed. npm ERR! git clone [email protected]:myusernamespace/myrepo.git fatal: Could not read from remote repository. npm ERR! git clone [email protected]:myusernamespace/myrepo.git npm ERR! git clone [email protected]:myysername/ref.

Em nodejs.log :

353 error Host key verification failed.
353 error fatal: Could not read from remote repository.
353 error
353 error Please make sure you have the correct access rights
353 error and the repository exists.

Trabalho anterior

Para permitir que o Gitlabs veicule os repositórios por meio do ssh, adicionei uma chave ssh pública ao implante do Gitlabs chaves para o projeto (e chaves validadas com git clone [email protected]:myusernamespace/myrepo.git )

Em seguida, para permitir o acesso do bean de feijão Elastic ao Gitlab, adicionei a mesma chave pública ao ambiente, criando 01_authorized_keys.config em ebextensions :

files:
  /home/ec2-user/.ssh/authorized_keys:
    mode: "000400"
    owner: ec2-user
    group: ec2-user
    content: |
      ssh-rsa AAAA{...the existing eb authorized_keys...} existing_authorized_keys_name
      ssh-rsa AAAA{...gitlab.pub...} [email protected]

Mas falhou: (

Alternativas tentadas

Outras coisas que eu tentei:

  • Configurando as chaves fazendo eco em authorized_keys conforme esta resposta
  • Adicionando a chave pública que já estava em authorized_keys à lista de implantação do Gitlabs.

Suposições

  • eb deploy usará ebextensions mesmo que não sejam
  • Eu deveria estar adicionando a chave pública à instância do EB
  • Eu não configurei outra instância de teste para criar o projeto inteiro apenas com as chaves de implantação do gitlab, portanto, presumo que, se as chaves delit do gitlab funcionarem manualmente, elas funcionarão por meio do npm.
por Ashley Coolman 04.02.2016 / 15:19

0 respostas