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 |
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-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
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!