Git SSH Keys: Privates GitHub Repository nutzen (klonen, pushen, etc.)

Um mit einem privaten GitHub Repository zu arbeiten benötigt man einen SSH Key, um sich gegenüber GitHub zu authentifizieren. Wie die Einrichtung einfach von der Hand geht, erfährst du in diesem Beitrag.
Bei jeglichen Operationen mit deinem privaten Repository (klonen, pushen, pullen, …) benötigst du eine Authentifizierungsmethode zwischen deinem lokalen Computer und dem GitHub Repository – und genau hier kommen SSH Schlüsselpaare (SSH Keypairs oder SSH Keys) zum Einsatz.
Das „Problem“: GitHub passt Authentifizierung an
Um sich in der Vergangenheit ein privates GitHub Repository zu klonen, konnte man das Repository über HTTPS einbinden und wurde dann aufgefordert sich mit GitHub Benutzername und Passwort zu authentifizieren. Damit ist aus sicherheitstechnischen Gründen Schluss. Versucht man es trotzdem erhält man folgende Fehlermeldung auf der Konsole:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for ‚https://github.com/…‘

Die Lösung ist einfach: Erstellen eines SSH Key für dein GitHub Repository. In nur 3 Schritten ist die einmalige Einrichtung erledigt.
Schritt 1: SSH Key (Schlüsselpaar) erstellen
Unter Windows benötigst Du das Programm PuTTY Key Generator (PuTTYgen). Falls du bereits PuTTY auf deinem Rechner installiert hast, ist es wahrscheinlich, dass es bereits mit installiert ist.
Öffne das Programm und klicke auf „Generate“. Danach musst du mit der Maus auf der weißen Fläche umherfahren, damit ein zufälliges Schlüsselpaar erstellt wird. Die restlichen Einstellungen kannst du unverändert lassen.

Ist der Vorgang abgeschlossen klickst du im Menü oben auf „Conversions“ > „Export OpenSSH key“ und speicherst die Datei unter C:\Users\YOUR_USER\.ssh ab. Der Name sollte id_rsa sein.
Achtung: Diesen Schlüssel (private key) solltest du nicht verlieren und keinesfalls an andere weitergeben!
SSH Schlüsselpaar unter Linux erstellen
Wenn Du Windows-Nutzer bist, kannst du direkt zu Schritt 2 springen.
Unter Linux kannst Du die Erstellung des SSH Keys direkt über das Terminal vornehmen. Dazu führst du folgenden Befehl aus:
ssh-keygen -t rsa -b 4096 -C "your-mail@example.com"
Wobei your-mail@example.com
deine GitHub E-Mail Adresse sein sollte. Der private und öffentliche Schlüssel werden dann unter ~/.ssh/ abgelegt.
Mehr Details zur Erstellung unter Linux findest du hier: https://www.heise.de/tipps-tricks/SSH-Key-fuer-GitHub-Repositories-einrichten-4627459.html
Schritt 2: Private Key Rechte anpassen
Die Datei mit dem privaten Schlüssel (id_rsa) muss bestimmte Rechte besitzen, da sie sonst aus Sicherheitsgründen ignoriert wird.
Permissions for '/Users/YOUR_USER/.ssh/id_rsa' are too open.It is required that your private key files are NOT accessible by others.This private key will be ignored.
Begegnet dir also diese Fehlermeldung solltest du die folgenden Schritte durchführen.
- Navigiere im Windows Explorer zu deinem privaten Schlüssel: C:\Users\YOUR_USER\.ssh\id_rsa
- Rechtsklick > Eigenschaften > Sicherheit
- Wähle ganz unten „Erweitert“
- Ganz oben kannst du den Besitzer der Datei in deinen Benutzer ändern (Adminrechte notwendig)
- Entferne dann aus der Liste der Berechtigungen alle Einträge und füge für deinen Benutzer Vollzugriff hinzu
Am Ende der Prozedur sollte die Ansicht etwa so aussehen:

Schritt 3: Public Key in GitHub hinterlegen
Im letzten Schritt fügen wir den öffentlichen Schlüssel unseren GitHub Account hinzu. Kopiere dazu den kompletten Inhalt aus dem blau markierten Textfeld – das ist der öffentliche Schlüssel zu deinem privaten Schlüssel in der id_rsa Datei.

Melde dich jetzt bei GitHub an und navigiere in die Einstellungen.

Im linken Menü findest du den Punkt „SSH and GPG keys“.

Klicke dort auf „New SSH key“.

Wähle hier einen passenden Titel, z.B. das aktuelle Datum und fügen den öffentlichen Schlüssel aus PuTTYgen ein (blau markierter Bereich). Beim Speichern wirst du erneut nach deinem GitHub Passwort gefragt und du erhältst zur Sicherheit auch eine Benachrichtigung per E-Mail.
Wenn du mehr über den technischen Hintergrund und Funktionsweise von SSH Keys erfahren möchtest, sieht dir diesen Beitrag an.
SSH Key testen
Das war’s! Jetzt kannst du dir ein privates Repository nehmen, auf „Code“ klicken, „SSH“ auswählen und das Repository via git clone REPO_SSH_URL
klonen.

Ich hoffe die Anleitung war gut verständlich. Sollten Fragen offen geblieben sein, schreib gern unten einen Kommentar.
Wie fandest du diesen Beitrag?


-
Pingback: CI/CD in Plesk: Node.js, React, Angular, Vue & Co. automatisch deployen
-
Pingback: Node.js Tutorial - Der ultimative Leitfaden für Anfänger