Mengakses repo gitlab pribadi di atas NPM di Elastic beanstalk: Verifikasi kunci host gagal


2

Latar Belakang

Repos:

  • myrepo, Server gitlab diri-host, di repo pribadi dengan (diuji) menyebarkan kunci
  • mainrepo, di server gitlab yang di-hosting sendiri, dalam repo pribadi yang berfungsi dengan baik.

Referensi package.json myreposeperti:

"dependencies": {
    "myrepo": "git+ssh://git@gitlab.myhost.com:myusernamespace/myrepo.git"
}

The mainrepodikerahkan ke mesin virtual beanstalk AWS elastis tanpa masalah.

Masalah

Masalahnya adalah proses pembangunan pada contoh beanstalk gagal, karena tidak memiliki izin untuk mengakses server gitlab

Rincian kesalahan

Dalam log UI web 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 git@gitlab.myhost.com:myusernamespace/myrepo.git Cloning into bare repository '/tmp/.npm/_git-remotes/git-git-myhost-com-myysername-myrepo-git-99d4209c'... npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git Host key verification failed. npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git fatal: Could not read from remote repository. npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git npm ERR! git clone git@gitlab.myhost.com:myysername/ref.

Di 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.

Pekerjaan sebelumnya

Untuk memperbolehkan Gitlabs untuk melayani repos lebih dari ssh, saya menambahkan kunci ssh publik ke kunci penyebaran Gitlabs untuk proyek (dan kunci yang divalidasi dengan git clone git@gitlab.myhost.com:myusernamespace/myrepo.git)

Kemudian untuk memungkinkan akses Pohon Kacang elastis untuk Gitlab, saya menambahkan kunci publik yang sama terhadap lingkungan dengan menciptakan 01_authorized_keys.configdi 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...} me@myhost.com

Tapi itu gagal :(

Alternatif sudah dicoba

Hal-hal lain yang saya coba:

  • Menyiapkan kunci dengan menggaungkannya authorized_keyssesuai jawaban ini
  • Menambahkan kunci publik yang sudah ada di otor_keys ke daftar penerapan Gitlabs.

Asumsi

  • eb deploy akan menggunakan ebextensions bahkan jika tidak
  • Saya harus menambahkan kunci publik ke instance EB
  • Saya belum menyiapkan contoh pengujian lain untuk membangun seluruh proyek dengan hanya menggunakan kunci gitlab, jadi saya berasumsi jika kunci delit gitlab bekerja secara manual, mereka akan bekerja melalui npm.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.