Ich möchte hier kurz dokumentieren, wie man unter MacOS oder auch unter Linux mehrere SSH-Keys verwalten kann. Das braucht man dann, wenn man beispielsweise mehrere Github Accounts hat oder (wie in meinem Fall) einen Github Account und einen Bitbucket Account. Für beide habe ich einen anderen SSH-Key definiert:
.ssh
├── bitbucket_rsa
├── bitbucket_rsa.pub
├── github_rsa
├── github_rsa.pub
├── config
└── known_hosts
Für die Services jeweils einen Key anlegen, geht folgendermaßen:
ssh-keygen -f ~/.ssh/servicename -t rsa -C "your_email@example.com"
Weiter solltet ihr ein im .ssh Ordner ein config-File anlegen:
# Default GitHub user
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa.pub
# Work user account
Host bitbucket
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/bitbucket_rsa.pub
Damit git nun den richtigen Key auswählen kann, nutzen wir den ssh-agent. Er muss zunächst einmal gestartet sein. Danach kann man mit ssh-add -l
die Liste der gerade aktiven SSH-Keys anzeigen lassen. Wenn man keine geladen hat, dann werden hier auch keine angezeigt.
Nun kann man mittels ssh-add beispielsweise den Key für Bitbucket laden. Hier wird dann auch nochmal das Passwort abgefragt.
ssh-add .ssh/bitbucket.rsa
Genauere Infos finden sich auch hier bei Bitbucket. Ich weiß, dass hier ist alles nicht sehr ausführlich. Ist auch mehr zum Nachschlagen für mich, damit ich nicht jeden Monat ein oder zwei Mal danach googeln muss, wenn ich meinen Rechner mal wieder rebootet habe :)