Elastic Beanstalk Access Private Git Repo

7

Ich versuche derzeit, meinen elastischen Beanstalk-Instanzen mithilfe der Befehle .ebextensions einen SSH-Schlüssel hinzuzufügen.

Die Schlüssel, die ich gespeichert habe, befinden sich in meinem Anwendungscode und ich versuche, sie in den Stammordner .ssh zu kopieren, damit ich später darauf zugreifen kann, wenn ich einen git + ssh-Klon mache

Hier ist ein Beispiel für die Konfigurationsdatei in meinem Ordner .ebextensions

packages:
  yum:
    git: []

container_commands:
    01-move-ssh-keys:
        command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;"
    02-add-ssh-keys:
        command: "ssh-add ~root/.ssh/tca_read_rsa"

Das Problem ist, dass beim Versuch, das Repo zu klonen, ein Fehler auftritt

Host key verification failed.

Ich habe viele Möglichkeiten ausprobiert, um den Host zur Datei unknown_hosts hinzuzufügen, aber keine hat funktioniert!

Der Befehl, der den Klon ausführt, lautet npm install, da das Repo auf ein Knotenmodul zeigt

user221676
quelle
Haben Sie eine Lösung dafür gefunden?
Ashley Coolman
Nach dem, was ich fertig habe, sollten Sie versuchen, sie hinzuzufügen authorized_keys(aber ich kann es auch nicht zum Laufen bringen)
Ashley Coolman
1
@AshleyCoolman Wenn Sie den öffentlichen Schlüssel hinzufügen authorized_keys, können Sie sich beim Server anmelden. Aber OP möchte eine Verbindung zu einem anderen Server herstellen
Jonathan

Antworten:

1

Ich habe dies zu meinen Erweiterungen hinzugefügt. Dies war das, was ich verwendet habe, um eine Verbindung zum Code-Commit herzustellen. Ich musste den Benutzer angeben und die Überprüfung des Hostschlüssels ignorieren. Hoffe das hilft jedem, der vorbeischaut ...

commands:
    add_ssh_config:
        command: printf "Host git-codecommit.*.amazonaws.com\r\n  StrictHostKeyChecking no\r\n  User <name-of-user>\r\n  IdentityFile ~/.ssh/<name-of-key>.pem" > /home/ec2-user/.ssh/config"
Dan2.0
quelle
0

Die Überprüfung des Hostschlüssels bedeutet, dass der Host selbst nicht überprüft werden kann. Wenn Sie zum ersten Mal mit ssh eine Verbindung zu einem Host herstellen, stellt ssh die folgende Frage. Dies ist die Überprüfung des Hostschlüssels.

The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?

Um sicher zu übergeben, dass Sie ssh-keyscan <repo-host>lokal verwenden und known_hostsstattdessen eine Datei mit der Ausgabe erstellen können .

Für GitHub wäre das also

$ ssh-keyscan github.com
# github.com:22 SSH-2.0-babeld-f43b814b
# github.com:22 SSH-2.0-babeld-f43b814b
# github.com:22 SSH-2.0-babeld-f43b814b
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

Die Erweiterung würde also ungefähr so ​​aussehen:

packages:
  yum:
    git: []

container_commands:
    01-move-ssh-keys:
        command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;"
    02-add-ssh-keys:
        command: "ssh-add ~root/.ssh/tca_read_rsa"
    03-add-known-hosts:
        command: "echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' > ~root/.ssh/known_hosts"
    04-fix-perm:
        command: "chmod 400 ~root/.ssh/known_hosts"
Jonathan
quelle