Benutzerdefinierter SSH-Key für Git

SSH-Keys für unterschiedliche Dienste

Mi, 16. September 2020, Marco

Wenn für unterschiedliche Dienste verschiedene SSH-Keys verwendet werden, kann es sein, dass man für das Klonen eines privaten Repositories oder eines Repositories auf dem Git-Server der Schule/Arbeit unterschiedliche Public Keys hinterlegt haben möchte.


Standardmäßig arbeitet Git mit dem Key `id_rsa`, allerdings gibt es in Git unterschiedliche Möglichkeiten dies zu beeinflussen. Einerseits können die Umgebungsvariablen `GIT_SSH` und `GIT_SSH_COMMAND` hierfür verwendet werden. Da die Umgebungsvariablen dann entweder überall gesetzt sind oder vor jede Git-Operation gestellt werden müssen, ist dies nicht optimal. Der folgende Befehl erscheint mir sinnvoll, da vor dem Klonen noch keine projektspezifischen Einstellungen gemacht werden können.

`GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_service" git clone URL`

Wenn das Projekt nun geklont ist, kann man mit den folgenden Konfigurationseinstellungen arbeiten:

  • core.sshCommand
  • ssh.variant

Nachfolgend ein Beispiel wie man innerhalb eines Projektes den SSH-Key anpassen kann:

`git config ssh.variant "ssh -i ~/id_rsa_service"`

Nachdem dies erledigt ist, verwendet Git innerhalb des Repositories den angegebenen SSH-Key.

Neben der Konfiguration für unterschiedliche SSH-Keys können auch weitere Optionen angepasst werden. Weitere Informationen sind im Manual von git-config oder auf der Webseite https://git-scm.com/docs/git-config ersichtlich.