So generieren und verwenden Sie GitLab SSH-Schlüssel

Wiederholtes Auffordern von Benutzernamen und Passwörtern ist ärgerlich und Zeitverschwendung. Wenn Sie die Passwortauthentifizierung mit Ihrem Gitlab-Konto verwenden, erfordert jede Aktion, dass Sie Ihre Zugangsdaten senden, entweder als Teil des Befehls oder über eine interaktive Aufforderung.

Insbesondere bei der Automatisierung der CI/CD-Pipelines in GitLab kann die Passwortauthentifizierung ineffizient und ein mögliches Sicherheitsrisiko sein. Warum beenden Sie nicht Ihr Leiden und wechseln zur Secure Shell (SSH) -Authentifizierung mit Gitlab SSH-Schlüsseln? Lesen Sie weiter und lernen Sie, wie es geht!

Am Ende dieses Tutorials haben Sie ein SSH-Schlüsselpaar generiert, den Schlüssel zur Authentifizierung verwendet und ein neues Gitlab-Projekt veröffentlicht.

Voraussetzungen

Dieses Tutorial ist eine praktische Demonstration. Um mitzumachen, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen.

  • Ihr GitLab -Konto. Wenn Sie noch keines haben, melden Sie sich zuerst kostenlos an.
  • A computer to use as your Gitlab SSH client. This tutorial will be using an Ubuntu 20.04 LTS computer but should work with Windows and macOS too.
  • Aktualisieren oder Installieren Sie Git. Die neueste Version zu diesem Zeitpunkt ist 2.25.1.

Visual Studio Code (VS Code). Das Beispiel in diesem Tutorial verwendet VS Code 1.62.3.

Generieren eines Gitlab-SSH-Schlüsselpaars

SSH-Schlüssel oder ein Schlüsselpaar besteht aus privaten und öffentlichen Schlüsseln. Kurz gesagt ist der private Schlüssel das, was der Client (Ihr Computer) dem Server (Gitlab) zur Authentifizierung vorlegt, und der öffentliche Schlüssel ist das, was der Server verwendet, um Ihren privaten Schlüssel zu entschlüsseln. Und wenn beide Schlüssel übereinstimmen, ist die Authentifizierung erfolgreich.

GitLab unterstützt zwei Arten von SSH-Schlüsselpaaren, die RSA und ED25519 SSH-Schlüssel. Aber in diesem Beispiel werden Sie das ED25519-Schlüsselpaar generieren, da es als sicherer angesehen wird als RSA-Schlüssel. Befolgen Sie die folgenden Schritte, um ein SSH-Schlüsselpaar zu generieren.

1. Öffnen Sie auf Ihrem Desktop eine Terminalsession und führen Sie den folgenden Befehl aus. Dieser Befehl öffnet Ihr Home-Verzeichnis in VS Code.

code ~

2. Klicken Sie in VS Code auf Terminal —> Neues Terminal.

Opening a new terminal instance in VSCode

3. Auf dem VS Code Terminal führen Sie das ssh-keygen -t unten aus, um den SSH-Schlüsseltyp ED25519 zu generieren. Der Kommentar-Tag -C ist optional, aber es wird empfohlen, um Ihre Schlüssel besser identifizierbar zu machen.

ssh-keygen -t ed25519 -C "Gitlab SSH Key"

4. Bei der nächsten Aufforderung, wo der Schlüssel gespeichert werden soll, drücken Sie die Eingabetaste, um den Standarddateinamen zu akzeptieren. Der Dateiname sollte ähnlich sein wie /home/<Benutzername>/.ssh/id_ed25519, wobei <Benutzername> Ihr Benutzername ist.

Accepting the default filename

5. Lassen Sie als nächstes das Passwortfeld leer und drücken Sie zweimal die Eingabetaste. Dadurch erstellen Sie ein SSH-Schlüsselpaar ohne Passwort.

Leaving the passphrase empty

Sie sollten ein ähnliches Ergebnis wie auf dem Screenshot unten sehen, der den Speicherort des privaten Schlüssels (id_ed25519) und des öffentlichen Schlüssels (id_ed25519.pub) zeigt.

Der private und der öffentliche Schlüssel haben denselben Basiskontonamen. Der öffentliche Schlüssel hat jedoch eine .pub-Erweiterung, während der private Schlüssel keine Erweiterung hat.

Generating the Gitlab SSH key pair

Hinzufügen des Gitlab SSH-Schlüssels zu Ihrem Profil

Denken Sie daran, dass der private Schlüssel auf Ihrem Computer verbleibt, während der öffentliche Schlüssel auf dem Gitlab-Server sein sollte. Nach dem Generieren der SSH-Schlüssel ist Ihr nächster Schritt das Hochladen des öffentlichen Schlüssels in Ihr Gitlab-Konto. Gehen Sie dazu wie folgt vor.

1. Öffnen Sie Ihre öffentliche Schlüsseldatei in VSCode. Im Explorerbereich erweitern Sie den .ssh-Ordner und klicken auf id_es25519.pub. Wählen Sie dann den öffentlichen Schlüssel aus und kopieren Sie ihn in die Zwischenablage.

Copying the public key

2. Öffnen Sie nun einen Webbrowser, navigieren Sie zu https://gitlab.com und melden Sie sich bei Ihrem Gitlab-Konto an.

3. Nach der Anmeldung navigieren Sie zu den SSH-Schlüsseln Profil-Einstellungen unter https://gitlab.com/-/profile/keys.

  • Fügen Sie den zuvor kopierten öffentlichen Schlüssel in das Schlüssel-Feld ein.
  • Das Titel-Feld wird automatisch mit dem Kommentarabschnitt Ihres öffentlichen Schlüssels ausgefüllt. Lassen Sie den Titelwert wie er ist oder geben Sie Ihren bevorzugten Wert ein.
  • Optional können Sie ein Ablaufdatum im Läuft ab-Feld angeben.
  • Zum Schluss klicken Sie auf Schlüssel hinzufügen.
Adding the Gitlab SSH key to your profile

Verwendung Ihres Gitlab SSH-Schlüssels

Bisher haben Sie den SSH-Schlüssel generiert und in Ihr Gitlab-Konto hochgeladen. Es bleibt noch zu überprüfen, ob Ihr SSH-Schlüssel funktioniert, indem Sie ihn verwenden, um eine Verbindung herzustellen und sich bei Gitlab zu authentifizieren.

Anmeldung

Im VS Code-Terminal verbinden Sie sich mit Ihrem Gitlab-Konto, indem Sie den folgenden Befehl ausführen.

ssh -T [email protected]

Angenommen, Sie verbinden sich zum ersten Mal, fordert der Befehl Sie auf, die Echtheit des Hosts zu überprüfen und die Verbindung zu bestätigen. Geben Sie am Prompt yes ein und drücken Sie Enter, um zu bestätigen.

Beachten Sie, dass Sie sich nicht mit einem Benutzernamen und einem Passwort anmelden mussten? Stattdessen verwendet der SSH-Befehl automatisch Ihre SSH-Schlüssel zur Authentifizierung. Nach erfolgreicher Anmeldung sollten Sie eine Willkommensnachricht sehen, die besagt: „Willkommen bei Gitlab @Benutzername!„.

Logging in to Gitlab via SSH

Veröffentlichen eines neuen Projekts

Sie haben bestätigt, dass Ihr Gitlab SSH-Schlüssel funktioniert und es Ihnen ermöglicht, sich erfolgreich zu authentifizieren. Aber funktioniert er auch, wenn Sie mit Gitlab über Git interagieren? Warum testen Sie es nicht, indem Sie ein neues Gitlab-Repository veröffentlichen?

1. Zuerst initialisieren Sie die Git-Konfiguration und richten sie mit Ihrem Gitlab-Benutzernamen und Ihrer E-Mail-Adresse ein. Führen Sie auf dem VS Code-Terminal die git config -Befehle unten aus, um Ihren Gitlab-Benutzernamen bzw. Ihre E-Mail-Adresse anzugeben.

git config --global user.name "your_username"
git config --global user.email "[email protected]"

Der von Ihnen ausgeführte Befehl sollte die Datei ~/.gitconfig mit den von Ihnen bereitgestellten Informationen aktualisieren oder erstellen.

Initializing the Git configuration

2. Erstellen Sie als nächstes einen Ordner unter Ihrem Home-Verzeichnis für Ihr neues Repository. Benennen Sie den neuen Ordner my-first-project.

Der Ordnernamen wird auch Ihr Gitlab-Repository-Projektname.

# Einen neuen Ordner erstellen
mkdir ~/my-first-project
# Das Arbeitsverzeichnis in den neuen Ordner ändern
cd ~/my-first-project

3. Initialisieren Sie das Repository, indem Sie den untenstehenden Befehl ausführen. Stellen Sie sicher, dass Sie den <Benutzernamen> mit Ihrem Gitlab-Benutzernamen ändern.

git init

Sie sollten eine ähnliche Bestätigungsnachricht wie im Screenshot unten sehen.

Initializing a new repository

4. Geben Sie als nächstes die Remote-Git-Repository-Adresse für Ihr Projekt an. Diese Repository-Adresse bestimmt, ob Sie sich mit SSH-Schlüsseln oder mit Benutzernamen und Passwort authentifizieren.

Finden Sie unten die Syntax, wobei <Benutzername> Ihr Gitlab-Benutzername und <Projektname> der Gitlab-Repository-Name ist. Beachten Sie, dass die Repository-Adresse mit [email protected] beginnt, was darauf hinweist, dass Sie sich mit dem SSH-Schlüssel anstelle von Benutzernamen und Passwort authentifizieren werden.

git remote add origin git@gitlab.com:<username>/<project-name>.git

Angenommen, der Gitlab-Benutzername lautet kevin und der Repositoriumsname ist my-first-project. Führen Sie nun den folgenden Befehl im Terminal aus.

git remote add origin git@gitlab.com:kevin/my-first-project.git

5. Führen Sie den Befehl unten aus, um eine leere Datei in Ihrem Repositorium mit dem Namen README.md zu erstellen.

touch README.md

6. Öffnen Sie die Datei README.md zum Bearbeiten und fügen Sie den folgenden Inhalt ein. Speichern Sie die Datei nach dem Bearbeiten. Mein erstes Projekt zur Demonstration von Gitlab SSH-Schlüsseln.

My first project to demonstrate Gitlab SSH keys.
Creating a file and adding content

7. Teilen Sie Git mit, die neue Datei README.md zum Repositorium hinzuzufügen und die Änderungen zu bestätigen.

git add README.md
git commit -m "My first commit"

Sie sollten eine ähnliche Ausgabe wie unten sehen.

Adding a file and committing changes to the repository

8. Schließlich ist es an der Zeit, Ihr neues Repositorium zu veröffentlichen. Führen Sie den Befehl unten aus, um das Repositorium von Ihrem Computer auf Ihr Gitlab-Konto zu pushen.

git push --all origin

Wie unten zu sehen ist, war die Projekterstellung erfolgreich, und es gab keine Anmeldeaufforderungen! Git hat Ihre SSH-Schlüssel verwendet, um sich bei Gitlab zu authentifizieren.

Creating a repository in Gitlab

9. Bestätigen Sie abschließend, dass Ihr neues Gitlab-Projekt online existiert. Navigieren Sie mit Ihrem Browser zu https://gitlab.com/dashboard/projects, um eine Liste Ihrer vorhandenen Projekte anzuzeigen. Dort sollten Sie den Namen my-first-project in der Liste sehen.

Viewing the Projects list in Gitlab

10. Klicken Sie außerdem auf den Projektnamen, und Sie sollten die Datei und den Inhalt von README.md angezeigt bekommen.

Viewing the README file

Fazit

Herzlichen Glückwunsch, dass du es bis hierhin in diesem Tutorial geschafft hast! Im Laufe dieses Schritt-für-Schritt-Tutorials hast du gelernt, wie man SSH-Schlüssel generiert und verwendet, um sichere Version-Control-Deployments in dein GitLab-Repository durchzuführen.

Mit diesem Wissen kannst du nun Aufgaben in deinen GitLab-Repositories durchführen, ohne dich Sorgen machen zu müssen, dass dein Benutzername und Passwort versehentlich preisgegeben werden.

Hast du bereits GitLab SSH-Schlüssel-Authentifizierung verwendet? Wie war deine Erfahrung damit? Würdest du anderen empfehlen, auch SSH-Schlüssel zu verwenden, oder gibt es Gründe, warum man davon Abstand nehmen sollte? Lass es uns wissen.

Source:
https://adamtheautomator.com/gitlab-ssh/