Zugriff auf private Repositories
Es bestehen 2 Möglichkeiten für das Zugreifen auf private git-Repositories. Sie können entweder das SSH oder HTTPS-Protokoll zur Authentifizierung des Repositories verwenden. Beide Möglichkeiten werden in den folgenden Abschnitten erläutert.
Mit SSH auf Ihr Repository zugreifen
Die Verwendung von SSH für den Zugriff auf private git-Repositories ist der von uns empfohlene Ansatz. Wenn Sie bereits ein einsatzfähiges SSH-Schlüsselpaar haben, können Sie diesen Abschnitt überspringen.
Um ein neues SSH-Schlüsselpaar zu erstellen, können Sie den Befehl ssh-keygen
verwenden. Auf Systemen, die auf Mac OS oder Linux basieren, wird ein neues
Schlüsselpaar zum Beispiel mit den folgenden Anweisungen erstellt:
ssh-keygen -t ed25519 -f ~/deploio.key -N ''
Damit wird ein privater SSH-Schlüssel im Format ed25519 generiert und sein
Inhalt wird in der Datei ~/deploio.key
abgelegt. Der dazugehörige öffentliche
Teil wird unter ~/deploio.key.pub
abgelegt. Der private Schlüssel ist nicht
passwortgeschützt. Dies ist wichtig, da Deploio sonst den Inhalt nicht lesen
kann.
Für einen zukünftigen Release ist geplant, dass nctl
das SSH-Schlüsselpaar
automatisch für Sie erstellt und den öffentlichen Teil ausgibt, sodass er nur
noch bei Ihrem git-Anbieter registriert werden muss (siehe unten).
Registrieren des öffentlichen Schlüssels
Der öffentliche Teil des soeben erstellten Schlüsselpaares muss bei Ihrem git-Anbieter registriert werden, damit Deploio den Inhalt des Repositories lesen kann. Dazu müssen Sie einen sogenannten „Deploy Key“ erstellen. Links zur Dokumentation verschiedener git-Anbieter finden Sie in der folgenden Tabelle.
Anbieter | Dokumentation |
---|---|
GitHub | Managing deploy keys |
Bitbucket | SSH keys for system use |
GitLab | Deploy keys |
Im Dialog für die Erstellung eines neuen Deploy Keys werden Sie nach einem
„Titel“ oder „Namen“ gefragt. Sie können diesen beliebig vergeben. Nutzen Sie
hier etwas, das auf den Client verweist, der den Deploy Key verwendet (z. B.
„deploio“). Danach müssen Sie im „Key“ Feld den Inhalt der Datei einfügen,
welche Ihren öffentlichen Schlüssel enthält (im obigen Beispiel
~/deploio.key.pub
).
Sie müssen keine Schreibberechtigung für den Deploy Key vergeben, da ein Lesezugriff für Deploio ausreicht.
Konfiguration der Deploio-Anwendung
Sobald der Schlüssel registriert ist, können wir nctl
verwenden, um die
Deploio-Anwendung zu erstellen. In diesem Beispiel verwenden wir GitHub als
Anbieter Ihres git-Repositories. Sie können den git@github.com
Teil
entsprechend mit der URL Ihres jeweiligen Anbieters ersetzen (z. B.
git@gitlab.com
)
nctl create app <app name> \
--git-ssh-private-key-from-file=~/deploio.key \
--git-url=git@github.com:<path-to-your-repository>.git
Sie können den Inhalt des privaten Schlüssels auch über die Umgebungsvariable $GIT_SSH_PRIVATE_KEY weitergeben oder mit $GIT_SSH_PRIVATE_KEY_FROM_FILE auf die Datei verweisen, die den privaten Schlüssel enthält.
Wenn die Anwendung bereits existiert, können Sie nctl update app
verwenden, um
die SSH-Authentifizierung zu verwenden.
Mit HTTPS auf Ihr Repository zugreifen
Sie können auch eine Kombination aus Benutzername/Passwort verwenden, um Deploio über HTTPS Zugriff auf Ihr git-Repository zu geben. Dazu sollten Sie am besten einen Repository Scoped Deploy Token erstellen, der nur für das Zugreifen auf ein bestimmtes Repository genutzt werden kann. Wir raten davon ab, einen personalisierten Deploy-/Zugriff-Token zu verwenden, da dieser direkt mit Ihrem Nutzerkonto verbunden ist und daher möglicherweise unnötig weitreichende Berechtigungen hat, die Deploio letztlich nicht braucht. Bitte geben Sie dem Deploy Token auch kein Ablaufdatum. Aktuell ist die Nutzung von Repository Scoped Deploy Tokens nicht bei allen git-Anbietern möglich. Dies ist einer der Gründe dafür, dass wir die Nutzung von Deploy Keys empfehlen, da sie allgemein besser unterstützt werden.
Hier sind einige Links zur Dokumentation für die Nutzung von Repository Scoped Deploy Tokens bei verschiedenen git-Anbietern:
Anbieter | Dokumentation |
---|---|
Bitbucket | HTTP access tokens |
GitLab | Deploy tokens |
Konfiguration der Deploio-Anwendung
Sobald Sie einen Repository Scoped Deploy Token erstellt haben, können Sie
mithilfe von nctl
eine Anwendung erstellen:
nctl create app <app name> \
--git-username=<token username> \
--git-password=<token password> \
https://<path-to-your-repository>.git
Sie können den Benutzernamen und das Passwort auch über die Umgebungsvariablen $GIT_USERNAME und $GIT_PASSWORD weitergeben.
Wenn die Anwendung bereits existiert, können Sie nctl update app
verwenden, um
die HTTPS-Authentifizierung zu verwenden.