Klonen ein Repo oder einen Zweig mit SSH-Schlüssel in Git
- Was ist SSH
- Warum Git Clone mit SSH-Schlüssel
- Verwenden Sie einen SSH-Schlüssel, um ein Repository in Git zu klonen
- Erweitern Sie Git Clone SSH mit Optionen
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
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
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)"
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
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.
- Gehen Sie zu Ihrem
GitHub
-Konto. - Klicken Sie auf
Profilbild
. - Wählen Sie im Dropdown-Menü
Einstellungen
.
- Klicken Sie in der linken Spalte auf
SSH and GPG Keys
.
- Klicken Sie oben rechts auf
Neuer SSH-Schlüssel
.
- Fügen Sie eine Beschreibung hinzu und fügen Sie den Schlüssel
PUBLIC
in das FeldKey
ein.
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
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.
- 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.
- 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.
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.
- 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>
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.
- 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>
- 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.