Klonen ein Repo oder einen Zweig mit SSH-Schlüssel in Git

Ankit Raj Goyal 30 Januar 2023
  1. Was ist SSH
  2. Warum Git Clone mit SSH-Schlüssel
  3. Verwenden Sie einen SSH-Schlüssel, um ein Repository in Git zu klonen
  4. Erweitern Sie Git Clone SSH mit Optionen
Klonen ein Repo oder einen Zweig mit SSH-Schlüssel in Git

SSH Git Clone bietet eine sichere Methode zum Klonen von Remote-Repositories. Dieses Tutorial zeigt die vollständige Methode zum Klonen von Git mit einem SSH-Schlüssel – wie man einen SSH-Schlüssel generiert, SSH in Git einrichtet und Git mit einem SSH-Schlüssel klont.

Wir zeigen auch einige nützliche Optionen zum Erweitern der Funktion – klonen Sie nur einen Zweig, klonen Sie in ein ausgewähltes Verzeichnis oder klonen Sie nur wenige Commits für große Repositories.

Was ist SSH

SSH oder Secure Shell Protocol ist ein Netzwerkprotokoll zur Nutzung gesicherter Dienste über ein unsicheres Netzwerk. Es verwendet ein öffentlich-privates Schlüsselpaar – nur Sie greifen auf Ihren privaten Schlüssel zu, während Sie Ihren öffentlichen Schlüssel an den Dienst senden, den Sie verwenden möchten.

Alle mit Ihrem öffentlichen Schlüssel verschlüsselten Daten können nur mit Ihrem privaten Schlüssel geöffnet werden und umgekehrt.

Warum Git Clone mit SSH-Schlüssel

SSH Git Clone bietet eine einfache Möglichkeit, Remote-Repositories sicher über unsichere öffentliche Netzwerke zu klonen.

Wenn Sie Git mit einem SSH-Schlüssel klonen, müssen Sie Passwörter nicht jedes Mal neu eingeben, um sich gegenüber dem Remote-Server zu identifizieren. Sobald ein Server einen SSH-Agenten authentifiziert, merkt er sich die Details – Sie müssen nicht jedes Mal einen SSH-Schlüssel neu eingeben.

Generieren ein SSH-Schlüsselpaar

Mit dem Befehl ssh key-gen generieren wir ein SSH-Public-Private-Key-Paar.

ssh key-gen

SSH-Schlüssel generieren

Sie werden aufgefordert, eine Passphrase einzugeben, um den Zugriff auf Ihre Schlüssel auf Ihrem Client-Computer zu sichern. Sie können das Feld leer lassen oder Ihre bevorzugte Passphrase eingeben.

Profi-Tipp: Beim Eingeben der Passphrase werden keine Zeichen angezeigt. Dies dient dazu, die Länge Ihrer Passphrase zu verbergen und mehr Sicherheit hinzuzufügen.

Profi-Tipp 2: Schreiben Sie Ihre Passphrase irgendwo hin. Wenn Sie es vergessen, können Sie Ihren Zugang nicht wiederherstellen.

Wir bleiben hier bei den Standardeinstellungen für den Befehl ssh key-gen, aber wir können auch verschiedene Optionen übergeben – den gewünschten Verschlüsselungsalgorithmus (z. B. ed2559), ein Label, einen bestimmten Ort zum Speichern der Schlüssel.

Überprüfen Sie das gespeicherte SSH-Schlüsselpaar

Wir prüfen, ob unsere SSH-Schlüssel korrekt generiert und gespeichert werden.

ls -al ~/.ssh

Überprüfen Sie die SSH-Schlüssel

Die Schlüssel werden im Ordner .ssh auf Ihrem Computer gespeichert. Die Datei id_rsa enthält den privaten Schlüssel, während die Datei id_rsa.pub Ihren öffentlichen Schlüssel enthält.

Wenn Sie diese beiden Dateien in der Ausgabe sehen, haben Sie erfolgreich ein SSH-Schlüsselpaar erstellt und gespeichert.

Fügen Sie den SSH-Schlüssel zum SSH-Agenten hinzu

Wir starten den SSH-Agenten als Hintergrundprozess.

eval "$(ssh-agent -s)"

Starten Sie den SSH-Agenten

Wir sehen, dass der Agent als Hintergrundprozess 970 läuft. Wir fügen den privaten SSH-Schlüssel zum SSH-Agenten hinzu.

ssh-add ~/.ssh/id_rsa

privatekey sshagent hinzufügen

Das Hinzufügen des privaten Schlüssels bestätigt der Agent mit der Meldung Identity added : <path_to_private_key.

Öffentlichen Schlüssel zum Remote-GitHub-Konto hinzufügen

Kopieren Sie den öffentlichen Schlüssel in die Zwischenablage.

clip < ~/.ssh/id_rsa.pub

Profi-Tipp: Kopieren Sie immer den Schlüssel PUBLIC. Teilen Sie NIEMANDEM Ihren PRIVATE Schlüssel mit.

  1. Gehen Sie zu Ihrem GitHub-Konto.
  2. Klicken Sie auf Profilbild.
  3. Wählen Sie im Dropdown-Menü Einstellungen.

Github-Einstellungen

  1. Klicken Sie in der linken Spalte auf SSH and GPG Keys.

Wählen Sie die Schlüssel ssh und gpg aus

  1. Klicken Sie oben rechts auf Neuer SSH-Schlüssel.

neuer SSH-Tastenklick

  1. Fügen Sie eine Beschreibung hinzu und fügen Sie den Schlüssel PUBLIC in das Feld Key ein.

öffentlicher sshkey in github einfügen

Sie haben Ihren SSH-Agenten jetzt erfolgreich mit Ihrem GitHub-Konto identifiziert.

Testen Sie Ihre SSH-Verbindung zu GitHub

Wir testen die SSH-Verbindung zu GitHub.

ssh -T git@github.com

SSH-Verbindung testen

Die Nachricht bestätigt, dass Sie sich erfolgreich authentifiziert haben.

Verwenden Sie einen SSH-Schlüssel, um ein Repository in Git zu klonen

Als nächstes klonen wir unser Remote-Repository mit SSH.

  1. Kopieren Sie die SSH-URL Ihres Repositorys

Klicken Sie in Ihrem Repository in GitHub oben rechts auf den grünen Code-Button.

Klicken Sie auf SSH, um Ihre SSH-URL anzuzeigen. Kopieren Sie diese SSH-URL.

SSH-URL kopieren

  1. Git Clone SSH im Git-Terminal

Klonen Sie die Fernbedienung mit SSH im Git-Terminal.

git clone <remote_repo_ssh_url>

Die <remote_repo_ssh_url> ist die URL, die Sie oben kopiert haben.

git klonen ssh

Sie haben erfolgreich ein Repository in Git mit SSH-Schlüsseln geklont.

Erweitern Sie Git Clone SSH mit Optionen

Möglicherweise möchten Sie einen bestimmten Klontyp für Ihren Anwendungsfall. Sie können den Git-Klon über SSH mit einigen Optionen erweitern.

  1. Git Clone SSH Only A Specific Branch

So klonen Sie nur einen Zweig mit SSH-Schlüsseln:

git clone --branch <branch_to_clone> <remote_repo_ssh_url>

git-klonen Sie einen bestimmten Zweig

Dies ist bei großen Repositories sehr nützlich. Um Zeit und Speicherplatz auf Ihrem lokalen Rechner zu sparen, möchten Sie möglicherweise nur den Zweig klonen, an dem Sie arbeiten, oder nur einige Zweige von Interesse.

  1. Git-Klon mit SSH-Schlüssel an einem bestimmten Ort

Möglicherweise möchten Sie in einen bestimmten Ordner klonen, um Ihre lokale Verzeichnisstruktur gut organisiert zu halten.

So klonen Sie an einem bestimmten Ort:

git clone <remote_repo_ssh_url> <specific_location_local>

git-Klon bestimmter Speicherort

  1. Flacher Git-Klon mit SSH-Schlüssel – Klonen Sie nur wenige Commits

Möglicherweise möchten Sie die Klonzeit verkürzen oder bei großen Repositories lokalen Speicherplatz sparen. Sie können dies tun, indem Sie nur einen ausgewählten Satz der letzten Commits klonen.

Um nur ein paar aktuelle Commits zu klonen:

git clone --depth=<n> <remote_repo_ssh_url>

Hier ist <n> die Anzahl der letzten Commits, die Sie klonen möchten.

Wenn zum Beispiel n = 2 ist, werden nur die letzten beiden Commits geklont.

git flachen Klon ssh

Verwandter Artikel - Git Clone