Kapitel ▾ 2. Auflage

4.3 Git auf dem Server - Generieren Ihres SSH-Public-Keys

Generieren Ihres SSH-Public-Keys

Viele Git-Server authentifizieren über SSH-Public-Keys. Um einen Public-Key bereitzustellen, muss jeder Benutzer auf Ihrem System einen generieren, falls er noch keinen hat. Dieser Vorgang ist auf allen Betriebssystemen ähnlich. Zuerst sollten Sie prüfen, ob Sie nicht bereits einen Key besitzen. Standardmäßig werden die SSH-Keys eines Benutzers im Verzeichnis ~/.ssh dieses Benutzers gespeichert. Sie können einfach prüfen, ob Sie bereits einen Key haben, indem Sie in dieses Verzeichnis wechseln und den Inhalt auflisten.

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

Sie suchen nach einem Dateipaar, das etwa id_dsa oder id_rsa heißt und einer passenden Datei mit der Endung .pub. Die .pub-Datei ist Ihr Public-Key, und die andere Datei ist der entsprechende Private-Key. Wenn Sie diese Dateien nicht haben (oder nicht einmal ein .ssh-Verzeichnis haben), können Sie sie durch Ausführen eines Programms namens ssh-keygen erstellen, das mit dem SSH-Paket unter Linux/macOS-Systemen geliefert wird und bei Git für Windows enthalten ist.

$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

Zuerst wird bestätigt, wo Sie den Key speichern möchten (.ssh/id_rsa), und dann werden Sie zweimal nach einer Passphrase gefragt, die Sie leer lassen können, wenn Sie kein Passwort eingeben möchten, wenn Sie den Key verwenden. Wenn Sie jedoch ein Passwort verwenden, stellen Sie sicher, dass Sie die Option -o hinzufügen; sie speichert den Private-Key in einem Format, das widerstandsfähiger gegen Brute-Force-Passwortknacken ist als das Standardformat. Sie können auch das Tool ssh-agent verwenden, um zu verhindern, dass Sie das Passwort jedes Mal eingeben müssen.

Nun muss jeder Benutzer, der dies tut, seinen Public-Key an Sie oder den Administrator des Git-Servers senden (vorausgesetzt, Sie verwenden eine SSH-Server-Einrichtung, die Public-Keys benötigt). Alles, was er tun muss, ist, den Inhalt der .pub-Datei zu kopieren und per E-Mail zu senden. Die Public-Keys sehen ungefähr so aus:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

Ein ausführlicheres Tutorial zur Erstellung eines SSH-Keys auf verschiedenen Betriebssystemen finden Sie im GitHub-Leitfaden zu SSH-Keys unter https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.