Lerne Coding
Anleitung zur Verwendung von SSH-Keys mit Git

SSH Verwenden für Git

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. Minuten

GitHub bietet schon seit längerer Zeit den Dateiaustausch via HTTPS oder SSH an. Ich habe mich bis jetzt immer für die HTTPS Variante entschieden, da es der Standard bei Github ist, erwäge jedoch nun zur SSH Übertragung zu wechseln. Dadurch habe ich den Vorteil, dass ich meinem System einen Schlüssel geben kann, welcher mich automatisch authentifiziert. Ich müsste nie wieder ein Passwort oder einen Authentifizierungsschlüssel eingeben, sondern mein System autorisiert sich mit einer mitgelieferten Datei alleine.

Ich möchte dir in diesem Artikel erklären, wie man einen SSH-Key erstellen, ihn bei GitHub hinterlegen und seine Repositorien auf die SSH Verbindungen migrieren kann. Dazu verwende ich Linux, Windows und Mac. Sollte ein Befehl nicht (mehr) funktionieren, melde dich bitte im Discord Server oder in den Kommentaren.

SSH-Key unter Linux erstellen

  1. Öffne ein Terminal
    In den meisten Fällen kann es mit STR + ALT + T geöffnet werden.

  2. Erstelle einen neuen SSH-Key

    ssh-keygen -t ed25519 -C "DEINE@EMAIL.DE"
    # Falls dein System dafür zu alt ist:
    # ssh-keygen -t rsa -b 4096 -C "DEINE@EMAIL.DE"

    Eine Passphrase ist das Passwort, welches du benötigst, um den SSH-Schlüssel verwenden zu können (es reicht ein schwaches Passwort da nur System intern)

  3. Starte den SSH-Agent im Hintergrund

    eval "$(ssh-agent -s)"
  4. Füge deinem SSH-Key deine eigene Identität hinzu (id_ab12345 → der Dateiname ist bei jedem System anders)

    ssh-add ~/.ssh/id_ab12345 
  5. Installiere xclip
    Das Programm xclip wird nur verwendet, um den Inhalt des Public-Keys in den Zwischenspeicher zu laden. Solltest du deswegen kein extra Programm verwenden wollen, kannst du dafür auch einen Editor verwenden. In der GitHub Dokumentation wird jedoch xclip verwendet, deswegen verwende ich es auch hier.

    sudo apt-get install xclip
  6. Kopiere den Public-Key in den Zwischenspeicher
    (id_ab12345 → der Dateiname ist bei jedem System anders)

    xclip -selection clipboard < ~/.ssh/id_ab12345.pub

SSH-Key unter Windows erstellen

  1. Öffne die Git-Bash
    Die Git-Bash, eine bunte Eingabekonsole, ist bei Windows über die Windows Suche auffindbar. Keine Sorge, du musst lediglich die folgenden Befehle eingeben, nichts wovor man Angst haben müsste.

  2. Erstelle einen SSH-Key

    ssh-keygen -t ed25519 -C "DEINE@EMAIL.DE"
    # Falls dein System dafür zu alt ist:
    # ssh-keygen -t rsa -b 4096 -C ""DEINE@EMAIL.DE"

    Eine Passphrase ist das Passwort, welches du benötigst, um den SSH-Schlüssel verwenden zu können (es reicht ein schwaches Passwort, da es nur Systemintern verwendet wird).

  3. Starte den SSH-Agent im Hintergrund

    eval $(ssh-agent -s)
  4. Füge deinem Key deine Identität hinzu
    (id_ab12345 → der Dateiname ist bei jedem System anders)

    ssh-add ~/.ssh/id_ab12345
  5. Kopiere den Inhalt des Public-Key in den Zwischenspeicher
    (id_ab12345 → der Dateiname ist bei jedem System anders)

    clip < ~/.ssh/id_ab12345.pub

SSH-Key erstellen unter Mac

  1. Öffne ein Terminal
    cmd + space und "Terminal" eingeben

  2. Erstelle einen SSH-Key

    ssh-keygen -t ed25519 -C "DEINE@EMAIL.DE"
    # Falls dein System dafür zu alt ist:
    # ssh-keygen -t rsa -b 4096 -C "DEINE@EMAIL.DE"
  3. Starte den SSH-Agent im Hintergrund

    ssh-agent -s
  4. Füge dem SSH-Key deine Identität hinzu
    (id_ab12345 → der Dateiname ist bei jedem System anders)

    ssh-add -K ~/.ssh/id_ab12345
  5. Kopiere den Public-Key in den Zwischenspeicher
    (id_ab12345 → der Dateiname ist bei jedem System anders)

    pbcopy < ~/.ssh/id_ab12345.pub

SSH-Key bei GitHub speichern

Öffne im Browser https://github.com/settings/keys

SSH Keys Übersicht Github
SSH Keys Übersicht Github

Zum Hinzufügen eines neuen Schlüssels, klicke oben rechts auf New SSH key. Es sollte sich folgendes Fenster öffnen:

Git neuen SSH Key Hinzufügen
Git neuen SSH Key Hinzufügen

Der Titel ist der Name des SSH-Keys, wie er später in deinem Interface stehen soll. In die "Key" Sektion fügst du den Text aus der Zwischenablage ein. Klicke anschließend auf Add SSH key. Sollten keine Fehlermeldungen auftreten, ist dein SSH-Key erfolgreich eingerichtet und du kannst damit fortfahren, deine Repositorien über SSH klonen.

HTTPS Repositories zu SSH ändern

Zunächst musst du prüfen, welche Remote Verbindungen dein Repository hat.

git remote -v

# Beispiel
uvulpos@Timvpos:~/Desktop/(..)/timriedl.com$ git remote -v
origin  https://github.com/uvulpos/timriedl.com.git (fetch)
origin  https://github.com/uvulpos/timriedl.com.git (push)
uvulpos@Timvpos:~/Desktop/(...)/timriedl.com$

Im aktuellen Beispiel sehe ich zwei Verbindungen: fetch und push. Beide laufen aktuell über HTTPS und hören auf den Namen origin. Um diese auf Git zu ändern, muss die Quelle für origin neu gesetzt werden. Gehe dazu auf dein Repository, klicke auf "clone", wähle SSH aus und kopiere die Adresse.

SSH Quelle
SSH Quelle

Um die Quelle zu ändern, setze die Remote URL der Quelle auf die kopierte Adresse.

# git remote set-url QUELLEN_NAME QUELLEN_ADRESSE
git remote set-url origin git@github.com:uvulpos/timriedl.com.git

Nachdem du nun die Quelle geändert hast, kannst du diese nochmals überprüfen. Lass dir dazu die Quellen anzeigen:

git remote -v

uvulpos@Timvpos:~/Desktop/(...)/timriedl.com$ git remote -v
origin  git@github.com:uvulpos/timriedl.com.git (fetch)
origin  git@github.com:uvulpos/timriedl.com.git (push)
uvulpos@Timvpos:~/Desktop/(...)/timriedl.com$

Wenn du nun das erste Mal deinen SSH-Key verwenden möchtest, musst du noch dem Fingerabdruck von GitHub zustimmen. Hast du das getan, wird dein Code ohne weitere Authentifizierung gepusht.

Fingerprint Github
Fingerprint Github

Beim zweiten Mal ist das jedoch nicht mehr notwendig und es wird sofort synchronisiert.

SSH Verbindung Github
SSH Verbindung Github

Fazit

Ich habe bis jetzt immer einen speziellen Schlüssel zum Pushen meiner Repositories verwendet, welchen ich in meinem Passwortmanager gespeichert habe, da ich die 2 Faktor Authentifizierung bei GitHub aktiviert habe. Doch nun muss ich diesen nicht mehr nach jedem Push eingeben. Unter Windows wird der Key zwar in Windows gecached, jedoch muss dieser nach jedem Neustart neu eingegeben werden und, falls man diesen falsch eingibt, kann es auch mal länger dauern, bis man herausfindet, wie man den Key aus dem Cache löscht. Diese Probleme gehören nun der Vergangenheit an.

Bildquelle - Vielen Dank an die Ersteller:innen für dieses Bild
Kommentare zum Artikel

Es sind noch keine Kommentare vorhanden? Sei der/die Erste und verfasse einen Kommentar zum Artikel "Anleitung zur Verwendung von SSH-Keys mit Git"!

Kommentar schreiben

Vom Autor Empfohlen
close