Zum Hauptinhalt springen

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.

AnbieterDokumentation
GitHubManaging deploy keys
BitbucketSSH keys for system use
GitLabDeploy 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:

AnbieterDokumentation
BitbucketHTTP access tokens
GitLabDeploy 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.