“Quälen Sie sich durch Tabellen, nur um eine Statistik zu erstellen?

Verwenden Sie passende Reporting-Lösungen!”

» Waidner IT Solutions | Mainz/Wiesbaden | +49 176 10042345
Home » Kundenprojekte » HowTo: git mit spezifischem SSH-Schlüssel unter Windows nutzen

HowTo: git mit spezifischem SSH-Schlüssel unter Windows nutzen

Manchmal ist die Aufgabe, die vor einem liegt, komplizierter als gedacht. So auch dieses Mal…

Eigentlich wollte ich mir nur mal eben schnell aus dem git-Repository eines Kunden ein Projekt clonen, einfach an sich dachte ich. Aber die spezifische Konstellation, die genutzt wird, macht es etwas aufwändiger. Die Eckdaten:

  • Ich nutze Windows als OS auf meiner Entwicklungsmaschine
  • Die Verbindung sollte über SSHerfolgen
  • Authentifizierung über SSH-Schlüssel ist gewünscht

Zuerst also von der offiziellen Seite (https://git-scm.com) git installiert. Lief problemlos. Um den mitgelieferten SSH-Client zu nutzen und endlich einmal meine alte OpenSSH-Version abzulösen, füge ich den Pfad zur ssh.exe noch meinen Umgebungsvariablen hinzu (Details siehe im alten Artikel). Die Schlüssel und die Konfiguration der alten Installation will ich natürlich übernehmen und kopiere alle Daten in der Config-Verzeichnis, das von git-ssh verwendet wird (c:\users\<benutzername>\.ssh\).

Als nächsten Schritt muss ich meinen SSH-Schlüssel auf dem git-Server hinterlegen. Dazu geht man in die „Profile Settings“ und wählt den Reiter „SSH Keys“ aus. Im Textfeld fügt man den Inhalt seines öffentlichen SSH-Schlüssels hinzu und vergibt eine Zeile tiefer noch einen Namen (der keine weitere Bedeutung hat).

Um zu testen, ob alles geklappt hat, kann man sich per SSH einmal auf den Server verbinden. Wichtig ist, dass man als SSH-Benutzernamen ‚git‘ verwendet, nicht das echte Login. „-i …“ erlaubt mir, einen bestimmten SSH-Schlüssel zu nutzen. Also:

ssh -i c:\users\<benutzername>\.ssh\<schlüsseldatei> git@<servername>

Wenn alles klappt, sollte eine kurze Verbindung aufgebaut werden, die einen mit dem Benutzernamen begrüßt und direkt wieder schließt.

Um jetzt git mit einem spezifischen Schlüssel zu nutzen, muss man die SSH-Konfiguration anpassen. Warum? Weil git keinen Parameter kennt, um den Schlüssel anzugeben. Zumindest keinen, den ich beim Suchen gefunden habe.

Die SSH-Konfiguration findet man unter c:\users\<benutzername>\.ssh\config. Existiert die Datei nicht, kann man sie einfach per Texteditor anlegen. Folgender Eintrag ist hier nun zu tätigen:

Host <host1>
HostName <host2>
IdentityFile c:\users\<benutzer>\.ssh\<Schlüsseldatei>
User git

<host2> ist der komplette Hostname des Zielsystems, bspw. gitlab.waidner-itsolutions.de.

<host1> ist ein Nickname für den Host. Hier kann man ein beliebiges Kürzel verwenden, das aber dann später auch in den URLs zum Verbinden genutzt werden muss. Der Einfachheit halber ergibt es (für git) Sinn, hier auch den vollen Hostnamen einzutragen.

Jetzt kann man per git ein repository clonen:

git clone git@<host1>:<repositoryname>.git