Sergey Nivens - Fotolia

Wie man einen SSH-Schlüssel für Git und GitHub erstellt

Für Ubuntu- und Windows-Nutzer gibt es ein Tool zum Erstellen eines Git und Github SSH-Schlüssels, das bereits vorinstalliert ist: ssh-keygen. Wie man das Tool einsetzt.

Um Code sicher zwischen Ihrer lokalen Git-Installation und einem entfernten GitHub- oder GitLab-Repository kopieren oder klonen zu können, müssen Sie zunächst ein SSH-Schlüsselpaar erstellen. Dieses identifiziert Sie und authentifiziert Ihre lokale Git-Installation gegenüber dem entfernten GitHub- oder GitLab-Server, mit dem Sie eine Verbindung herstellen möchten.

GitHub SSH-Tools

Es gibt zahlreiche Möglichkeiten, SSH-Schlüssel für Git zu erstellen, zum Beispiel PuttyGen. Für Ubuntu- sowie Windows-10- oder 11-Nutzer gibt es allerdings ein besseres Tool zum Erstellen eines Schlüssels, das auf dem Betriebssystem vorinstalliert ist. Es trägt den Namen ssh-keygen.

Um SSH-Schlüssel für GitHub und Git zu erstellen, öffnen Sie einfach ein Terminal-Fenster in Ubuntu oder PowerShell in Windows und führen den Befehl ssh-keygen aus.

SSH-Schlüssel unter Windows und Ubuntu erstellen

Unter Ubuntu wird der Befehl wie folgt aufgerufen:

ssh@keygen~/.ssh$ ssh-keygen -o -t rsa -C "[email protected]"

Unter Windows sieht der Befehl zum Beispiel so aus:

PS C:\ssh\keygen\example> ssh-keygen -o -t rsa -C "[email protected]"

Microsoft Windows unterstützt SSH seit 2018. Solange Ihre Installation auf dem neuesten Stand ist, benötigen Sie weder Putty, PuttyGen oder Plink, um die GitHub SSH KeyGen Tools zu nutzen.

Das SSH-KeyGen-Tool generiert zwei Dateien, die den öffentlichen Schlüssel und den privaten Schlüssel abbilden. Die SSH-Schlüssel heißen is_rsa und id_rsa.pub.

ssh@keygen~/.ssh$ ls

is_rsa id_rsa.pub 

GitHub SSH KeyGen-Optionen
KeyGen-Option Bedeutung Verwendung
-t Erzeugt einen DSA-, RSA- oder ECDSA-Schlüssel RSA
-o Verwendet das neue OpenSSH-Format Standard akzeptieren
-C Metadaten, die an den öffentlichen SSH-Schlüssel angehängt werden E-Mail

Speicherort des SSH-Schlüssels

Der Befehl ssh-keygen fragt Sie, ob Sie die erzeugten Schlüssel in einem benutzerdefinierten Ordner ablegen möchten. Lehnen Sie diese Option ab und akzeptieren Sie die Standardeinstellungen.

Sowohl unter Linux als auch unter Windows müssen SSH-Schlüssel in einem Ordner mit dem Namen .ssh abgelegt werden, der sich im Stammverzeichnis des Benutzers befindet. Unter Windows, wo der Benutzer, der den GitHub SSH-KeyGen-Befehl ausgeführt hat, Owner heißt, werden die öffentlichen und primären Schlüssel beispielsweise im folgenden Ordner aufgelistet:

PS C:\Users\Owner\.ssh> dir

Mode                 LastWriteTime         Length Name

----                 -------------         ------ ----

-a----         1/28/2022   8:02 PM           2602 id_rsa

-a----         1/28/2022   8:02 PM            572 id_rsa.pub

Kopieren des öffentlichen SSH-Schlüssels

Der Inhalt der öffentlichen Schlüsseldatei id_rsa.pub muss kopiert und in das GitHub SSH-Konfigurationsfenster eingefügt werden. Öffnen Sie die Datei, wenn Sie Ubuntu verwenden, oder öffnen Sie die Datei in einem Texteditor unter Windows, und kopieren Sie den Schlüssel.

GitHub SSH-Schlüssel
Abbildung 1: Der öffentliche Schlüssel, der erzeugt wurde, muss kopiert und in GitHub eingefügt werden.

GitHub SSH-Konfiguration

Wenn Sie den Wert des öffentlichen Schlüssels in die Zwischenablage kopiert haben, melden Sie sich bei GitHub an und navigieren Sie zu Ihren Kontoeinstellungen. Dort sehen Sie einen SSH- und GPG-Link. Öffnen Sie diesen Link und fügen Sie dann einen neuen SSH-Schlüssel hinzu.

Fügen Sie den Wert des öffentlichen Schlüssels in das Textfeld ein und geben Sie dem Schlüssel einen eindeutigen Namen. Speichern Sie Ihre Änderungen und die Einrichtung Ihres GitHub SSH-Schlüssels ist fast abgeschlossen.

Klonen eines GitHub-Repository mit SSH

Jedes GitHub-Repository verfügt über eine grüne Code-Schaltfläche, die eine CLI-, eine HTTP- und eine GitHub-SSH-URL enthält, die mit dem Befehl git clone verwendet werden kann. Der SSH-Link für das zu klonende Repository in diesem Beispiel lautet:

[email protected]:cameronmcnz/github-made-real-easy.git

SSH-Repository-Link von GitHub
Abbildung 2: Verwenden Sie den SSH-Repository-Link von GitHub, um Projekte über eine sichere Shell-Verbindung zu klonen.

Um Ihr Repository zu klonen, öffnen Sie einfach das Terminalfenster in Ubuntu oder die Eingabeaufforderung in Windows und geben Sie folgenden Befehl ein:

PS C:\ssh\keygen\example> git clone [email protected]:cameronmcnz/github-made-real-easy.git

Cloning into ‘github-made-real-easy’…

Authenticity of GitHub SSH KeyGen Example host ‘ (131.2.14.9)’ can’t be established.

Do you still want to connect(yes or no)? yes

Receiving objects: 100% (222/222), 2.23 MiB | 3.41 MiB/s, done.

Resolving deltas: 100% (111/111), done.

Es wird eine Warnung über die Authentifizierung des SSH-Schlüssels angezeigt. Geben Sie einfach yes ein, wenn die Aufforderung erscheint, und erlauben Sie dem Repository, zu klonen.

Push zu GitHub mit SSH-Schlüssel

Sobald die SSH-Verbindung zu GitHub erfolgreich hergestellt ist, werden alle nachfolgenden Push-, Pull- und Fetch-Prozesse über eine sichere Verbindung unter Verwendung des generierten Schlüssels ausgeführt. Es sind keine zusätzlichen Flags oder Optionen erforderlich.

Ein SSH-Push an GitHub von einem Repository, das bereits über SSH geklont wurde, sieht wie folgt aus:

PS C:\ssh\keygen\example> git pull origin

Everything up to date!

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close