Vor einiger sehr langer Zeit habe ich mal ueber „Saving SSH options for specific host“ geschrieben. Fuer mich ist die ~/.ssh/config nicht mehr wegzudenken. Bloed ist natuerlich, wenn ich diese Datei auf meinem Rechner zuhause habe, aber auf der Arbeit etc. auch haben moechte. Auf jeden Rechner auf dem ich die Datei haben will raufkopieren, nach jedem Update ueberall neu. Ganz schoen bloed und nervig.
Viel schoener waere es fuer mich, die Datei an einem Ort zu haben, wo sie immer aktuell ist, wo ich immer rankomme, und von wo ich sie mir schnell ziehen kann. Was bietet sich da mehr an als mein Webserver?! Auf der bash ist ein „wget myServer.tld/myFile -O ~/.ssh/config“ sehr schnell geschrieben ;-)
Meine ~/.ssh/config passe ich hauptsaechlich zuhause auf meinem Rechner an. Von daher reicht fuer mich eine simple Moeglichkeit diese Datei schnell und unkompliziert von da auf meinen Webserver zu bekommen. Am besten automatisch, dass ich mich nicht drum kuemmern muss. Hier meine Loesung:
- Auf dem Webserver einen rsync-User angelegt und ihn der Gruppe „www-data“ hinzugefuegt, so dass er in meine htdocs schreiben darf , und in die Gruppe „ssh-allow“ hinzugefuegt, so dass er sich auch via SSH einloggen darf (in der /etc/ssh/sshd_config: AllowGroups ssh-allow)
(adduser myRemoteRsyncUser && adduser myRemoteRsyncUser www-data && adduser myRemoteRsyncUser ssh-allow) - Auf meinem Desktop-PC einen User angelegt und fuer diesen einen ssh-key generiert
(adduser myLocalRsyncUser && su – myLocalRsyncUser && ssh-keygen -t dsa -f .ssh/myKey) - Die myKey.pub auf dem Websever in die entsprechende authorized_keys gepackt
(scp /home/myLocalRsyncUser/.ssh/myKey.pub myRemoteRsyncUser@myServer.tld: -> ssh myRemoteRsyncUser@myServer.tld -> cat myKey.pub >> ./ssh/authorized_keys ) - Auf meinem lokalen Rechner rsync Befehl zum kopieren der config beim herunterfahren des Rechners automatisch ausfuehren lassen
(in der /etc/conf.d/local.stop [Gentoo] den Befehl su myLocalRsyncUser -c „rsync -avu -e ssh /path/to/.ssh/config myRemoteRsyncUser@myServer.tld:/var/www/myRemoteSSHConfigFilename“)
Voila. Beim runterfahren wird nun die Datei automatisch auf meinen Webserver kopiert falls sich diese geaendert hat :-) EEEENDLICH!!