Ich bin ja nun wahrlich kein Linux-Experte – daher habe ich für eine Lösung des folgenden Problems sehr lange gesucht und gewerkelt: Auf der Arbeit arbeiten wir seit kurzem mit git. Generell bin ich davon sehr angetan und alles läuft wunderbar ohne Eingabe von Passwörtern (dank SSH-Keys).
Den SSH-Key habe ich so erstellt wie im Giblab beschrieben:
ssh-keygen -t rsa -C "mail@domain.de"
Nun haben wir einen Test-Server auf dem wir alle Webseiten und Magento-Shops testen und den aktuellen Entwicklungsstand pflegen – dazu muss man natürlich ein git pull auf dem Testserver durchführen. Leider kam genau dann immer eine Meldung, dass mir die Rechte dafür fehlen.
hello deploy_12775c356b147ab29c88b57355d369ed, this is git@irgendeinserver running gitolite3 v3.04-0-gaf437c3 on git 1.7.0.4
Testen kann man eine SSH-Key-Authentification folgendermaßen:
ssh -T git@irgendeinserver.tld
Nun habe ich Google mit den Suchbegriffen ssh-agent, ssh key forwarding und weiten Kombinationen aus ssh, key, forward, agent und git gefüttert. Herausgekommen ist, dass man die Weiterleitung von Keys seit SnowLeopard manuell aktivieren muss (in Leopard war das Feature noch automatisch aktiviert).
vi /etc/ssh_config
Host * SendEnv LANG LC_* ForwardAgent yes ForwardX11 yes RhostsRSAAuthentication yes RSAAuthentication yes PasswordAuthentication yes
Danach ist ein Reboot wohl wichtig – konnte ich zwar nicht richtig glauben, aber ich habe es einfach mal trotzdem gemacht. Habe den Mac eh seit Wochen nicht neu gestartet. Danach wollte es aber noch nicht funktionieren und ich konnte keine Änderung feststellen. Langsam wollte ich den schon Glauben verlieren und mir gingen die Ideen und Suchergebnisse aus. Da ich mich wirklich garnicht mit der Materie auskenne wusste ich auch nicht was ich noch suchen sollte. Geholfen haben mir dann die Kommentare in diesem Artikel. Dort hieß es, dass man die Keys ebenfalls zur Keychain hinzufügen muss. Gesagt getan:
ssh-add -K ~/.ssh/id_rsa.pub
Schon lief alles wie gewollt – ob die ganzen anderen Änderungen in der ssh_config nun nötig waren weiß ich nicht. Außerdem weiß ich nicht ob ich nun irgendwelche Sicherheitslöcher in mein System gerissen habe. Mir fehlt aktuell aber die Zeit und Geduld um näher zu testen ob ich mit weniger Einstellungen auch auskommen würde.
ssh -T git@irgendeinserver.tld
hello mail_domain_de_1234567890, this is git@irgendeinserver running gitolite3 v3.04-0-gaf437c3 on git 1.7.0.4