SSH

Jan. 16, 2015

Links (110)

Kategorien Links
Tagged Geschlecht Gender Männer Halloween Haustiere 31C3 Wimmelbild Feminismus Netzfeminismus Menstruationscomics NSA Skandal Snowden Obfuscation Hello World SystemD extrapolation Art CSS shapes Klopapier Zug DB Bahn Privatssphäre Apps SSH hardening Museum Sounds Free Music Radio OpenSource Vibrator
Mobil qrcode zeigen

0 Kommentare

Okt. 21, 2010

Dateisynchronisierung selbstgemacht

Viele kennen und nutzen vielleicht sogar Dateisynchronisations-Dienste wie Ubuntu One oder Dropbox. Es ist auch sehr praktisch, man muss nicht mehr darauf achten ob die Datei schon auf dem USB-Stick ist, oder ob man sie im richtigen Versionsstand hochgeladen hat. Man speichert sie einfach direkt im synchronisiertem Verzeichnis, und sie ist immer überall aktuell.
Der Haken an der Sache ist nur, die eventuell privaten Dateien liegen bei einem fremden Anbieter. Darum hier jetzt eine Anleitung zum selbermachen.

Benötigt:

  • Linux-System (oder eventuell cygwin wenn man sich auskennt)
  • Unison (sollten die meisten Distributionen als Paket anbieten)
  • cron (sollten Linux-Distributionen dabei haben, wer den Tipp mit Cygwin versucht wird es nachinstallieren müssen)
  • einen (v)Server mit fester IP, oder einen immer-an-PC mit dyndns, der erreichbar ist über SSH.

Anleitung:

1) zunächst generiert man auf jedem System das synchronisiert werden soll einen SSH-Key ohne Passwort für den sync. Diesen speichert man z.B. in ~/.ssh/id_sync.

2) auf dem Server fügt man einen user für filesync hinzu, und in dessen .ssh/authorized_keys fügt man diese Keys ein wie folgt:

command="/usr/bin/unison -server" ssh-rsa AAAA[key1 hier]= sync@rechnername
command="/usr/bin/unison -server" ssh-rsa AAAA[key2]= sync@rechnername2

durch das command= wird sichergestellt, dass der User nur unison verwenden darf, wenn der Login über den SSH-Key erfolgt.
Danach erstellt man den Ordner "sync" auf dem Server und den Clients im $HOME.

3) Jetzt muss der Sync noch auf den Clients aktiviert werden. Dazu fügt man mittels "crontab -e" einen Cronjob hinzu:

*/5 * * * * flock -n /home/username/sync/.syncing unison /home/username/sync/ ssh://filesync@servername/sync -sshargs '-i /home/username/.ssh/id_filesync' -batch >/dev/null 2>&1

4) Auf jedem Client sollte unison beim ersten Synchronisieren manuell aufgerufen werden, wobei man auf eventuelle Nachfragen antwortet dass die Dateien vom Server auf den Client synchronisiert werden sollen:

unison /home/username/sync/ ssh://filesync@servername/sync -sshargs '-i /home/username/.ssh/id_filesync'

Danach kann man noch einmal die Cron-Zeile testen, die jetzt ohne Rückfragen problemlos durchlaufen sollte:

flock -n /home/username/sync/.syncing unison /home/username/sync/ ssh://filesync@servername/sync -sshargs '-i /home/username/.ssh/id_filesync' -batch

Bemerkungen:

  • flock -n bricht die Synchronisierung ab, wenn gerade eine andere gleichzeitig läuft. Es kann ja vorkommen, dass eine große Datei länger als 5 Minuten zum übertragen braucht.
  • Zusätzliche Sicherheit lässt sich durch ein chroot auf dem Server erreichen. Das verhindert, dass ein Client per unison andere Dateien vom Server übertragen kann.
  • Wenn Dateien gleichzeitig auf mehreren Clients bearbeitet wurden kann ein manueller Merge nötig sein. Den kann man mit unison auf der commandline ohne -batch gemacht werden.

Kategorien Datenschutz Tipps Software
Tagged sync ubuntu one dropbox unison synchronisierung Dateien SSH vserver linux dyndns
Mobil qrcode zeigen

1 Kommentar

Dez. 31, 2008

Links 59

Kategorien Links
Tagged Militär Bittorrent SSH Kamera Terrorpanik E-Card Agent ssh-agent Januar 1 Satellit
Mobil qrcode zeigen

0 Kommentare

Mai 27, 2008

Links 30

Kategorien Links
Tagged BKA Freiheit BKA-Gesetz Debian Kreditkarten Verdacht Reproduktion Eugenetik Filter Copyright Peter Schaar Schaar Unschuldsvermutung Network 36 alt SSH
Mobil qrcode zeigen

0 Kommentare