SSH – SSH-Agent

Jedesmal die Passphrase eingeben zu müssen wenn man sich irgendwo per SSH
einloggen möchte kann, wenn man viele Rechner hat, nervig werden. Ausserdem
ist Admin ja per Definition faul. 😉 Aber es gibt Abhilfe.


Der SSH-Agent ist per Default bei SSH dabei. Braucht also nicht nachträglich
installiert zu werden.

Zuerst muss man SSH noch dahingehend konfigurieren das er den Agent auch
benutzt. Das macht man entweder mit dem Parameter „-X“ beim Client oder in der
~/.ssh/ssh_config. Dort muss dann „ForwardAgent yes“, bei dem jeweiligen Hosteintrag,
stehen. In der /usr/local/etc/sshd_config muss es nur dann stehen wenn man von dem
jeweiligen Host auf andere Hosts möchte und dabei vom Agent profitieren möchte.

Die Benutzung ist denkbar einfach.
Man ruft einfach den Agent mit der Shell (oder besser gleich X) auf.
Endweder:
$ ssh-agent bash
oder
$ ssh-agent xterm
oder
$ exec ssh-agent startx

Bei X kann man es auch in die ~/.xinitrc schreiben.
Statt „exec $WINDOWMANAGER“ muss dann „exec /usr/local/ssh-agent $WINDOWMANAGER“
(ziemlich weit unten in der Datei) dort stehen. Ggf. ist der Pfad zum Programm
anzupassen. Dann reicht ein „startx“ um ein X, und damit auch alle in X
gestarteten XTerms, mit geladenem Agent zu haben.

Dies ist aber doch noch nicht alles. Man muss dem Agent jetzt noch sagen das und
welche Keys er beinhalten soll. Wenn man seine SSH-Keys defaultmässig erstellt
hat geht das einfach mit:
$ ssh-add
Ansonsten mit:
$ ssh-add ssh_privatekey_file

Passphrase eingeben und beim nächsten SSH Connect, in der Shell oder dem XTerm
welches mit dem ssh-agent gestartet wurde, braucht man keine Passphrase mehr
einzugeben. Wenn X gleich mit dem Agent gestartet wurde braucht man „ssh-add“
nur einmal in einem beliebigen XTerm auszuführen.