Zum Hauptinhalt springen

Zugriff auf private Repositories

Es bestehen 2 Möglichkeiten für das Zugreifen auf private git-Repositories. Du kannst entweder das SSH oder HTTPS-Protokoll zur Authentifizierung des Repositories verwenden. Beide Möglichkeiten werden in den folgenden Abschnitten erläutert.

Mit SSH auf dein Repository zugreifen

Die Verwendung von SSH für den Zugriff auf private git-Repositories ist der von uns empfohlene Ansatz. Wenn du bereits ein einsatzfähiges SSH-Schlüsselpaar hast, kannst du diesen Abschnitt überspringen.

Um ein neues SSH-Schlüsselpaar zu erstellen, kannst du den Befehl ssh-keygen verwenden. Auf Systemen, die auf macOS 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 dich erstellt und den öffentlichen Teil ausgibt, sodass er nur noch bei deinem git-Anbieter registriert werden muss (siehe unten).

Registrieren des öffentlichen Schlüssels

Der öffentliche Teil des soeben erstellten Schlüsselpaares muss bei deinem git-Anbieter registriert werden, damit Deploio den Inhalt des Repositories lesen kann. Dazu musst du einen sogenannten „Deploy Key“ erstellen. Links zur Dokumentation verschiedener git-Anbieter findest du in der folgenden Tabelle.

AnbieterDokumentation
GitHubManaging deploy keys
BitbucketSSH keys for system use
GitLabDeploy keys

Im Dialog für die Erstellung eines neuen Deploy Keys wirst du nach einem „Titel“ oder „Namen“ gefragt. Du kannst diesen beliebig vergeben. Nutze hier etwas, das auf den Client verweist, der den Deploy Key verwendet (z. B. „deploio“). Danach musst du im „Key“ Feld den Inhalt der Datei einfügen, welche deinen öffentlichen Schlüssel enthält (im obigen Beispiel ~/deploio.key.pub).

Du musst 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 deines git-Repositories. Du kannst den git@github.com Teil entsprechend mit der URL deines 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

Du kannst 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, kannst du nctl update app verwenden, um die SSH-Authentifizierung zu verwenden.

Mit HTTPS auf dein Repository zugreifen

Du kannst auch eine Kombination aus Benutzername/Passwort verwenden, um Deploio über HTTPS Zugriff auf dein git-Repository zu geben. Dazu solltest du 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 deinem Nutzerkonto verbunden ist und daher möglicherweise unnötig weitreichende Berechtigungen hat, die Deploio letztlich nicht braucht. Bitte gib 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:

AnbieterDokumentationBemerkung
BitbucketRepository Access Tokensx-auth-token als Benutzernamen verwenden
GitLabDeploy tokens

Konfiguration der Deploio-Anwendung

Sobald du einen Repository Scoped Deploy Token erstellt hast, kannst du 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

Du kannst den Benutzernamen und das Passwort auch über die Umgebungsvariablen $GIT_USERNAME und $GIT_PASSWORD weitergeben.

Wenn die Anwendung bereits existiert, kannst du nctl update app verwenden, um die HTTPS-Authentifizierung zu verwenden.