16.03.2010
Datenabgleich über LAN per unison und ssh
von wagges.
Ich habe zuhause zwei Rechner im Einsatz, meinen Desktop-PC und ein Netbook. Auf beiden läuft Ubuntu 9.10.
Ich war es langsam leid, bestimmte Ordner/Daten mit dem Perpedes abzugleichen und hin und her zu kopieren. Ab jetzt macht das bei mir auf Knopfdruck unison mithilfe von SSH.
Zuerst ein Terminal öffnen und auf beiden Rechnern ssh und unison installieren
$ sudo apt-get install ssh-client openssh-server unison unison-gtk
Damit man nicht jedesmal ein Passwort eingeben muss, noch auf jedem Rechner
$ ssh-keygen$ ssh-copy-id user@zielrechenername.localausführen.
Nun kann man sich an die Konfiguration von unison machen. Dazu erstellt man im Ordner ~/.unison ein .prf Profil mit aussagekräftigem Namen
$ nano .unison/profilname.prf
und füllt dieses mit folgendem Inhalt
root = Quellverzeichnis root = ssh://user@zielrechner//Zielverzeichnis path = Unterverzeichnis1 path = Unterverzeichnis2 #usw...
So können also mehrere Ordner synchronisiert werden. Will man z.B. die Ordner /home/hugo/Dokumente und /home/hugo/Videos synchronisieren, dann sieht das so aus
root = /home/hugo root = ssh://user@zielrechner//home/hugo path = Dokumente path = Videos
Nun kann man bequem unison-gtk starten, das soeben erstellte Profil auswählen und loslegen.
Will man aber cool sein, so wie ich, dann erstellt man ein kleines aber feines Skript, das es ermöglicht durch einfachen Klick auf ein Icon die Synchronisation durchzuführen.
$ nano skriptname.shSkript mit Inhalt füllen
#!/bin/bash unison -batch profilname
die Option -batch sorgt dafür, dass unison keine lästigen Fragen stellt, sondern still seinen Dienst verrichtet (es sollten in den meisten Fällen keine aussergewöhnlichen Dinge passieren…).
Nun das Skript noch ausführbar machen
$ chmod +x skriptname.shJetzt kann man einfach im Hauptmenü einen neuen Starter anlegen, der das Skript mittels sh skriptname.sh ausführt, diesem noch ein nettes Icon verpassen und das war’s.
24.03.2010
23:46
Piccolino81 ¶
Super Anleitung!
Zwei Fragen hätte ich nun allerdings doch noch:
1. Wie löse das mit dem “nicht jedes Mal Passwort eingeben müssen”, wenn ich auf meinem Notebook aus Sicherheitsgründen keinen SSH-Server installieren möchte?
2. Was genau wird denn mit “ssh-copy-id” auf den anderen Rechner übertragen? Gilt das dann für alle Benutzer oder nur für den jeweiligen, für den ich den Befehl ausführe?
Gruß
Piccolino81
25.03.2010
09:44
bacchus ¶
Hei Piccolino81,
1) ohne ssh-server auf dem Notebook geht das synchronisieren dann eben nur vom Notebook aus – funktioniert aber sonst genauso.
2) ohne genau zu wissen, was ssh-copy-id tatsächlich macht, muss damit das “nicht jedes Mal Passwort eingeben müssen” funktioniert, der ssh-Key in das .ssh Verzeichnis im /home Verzeichnis des Benutzers kopiert werden – und das geht nur als jener Benutzer (oder root). Lange Rede, kurzer Sinn: Es gilt nur fuer den jeweiligen Nutzer, der den Befehl ausfuehrt.
lg
Sebastian
25.03.2010
11:15
wagges ¶
Wie Sebastian geschrieben hat, muss auf jedem beteiligten Rechner der ssh-server installiert sein, um einen Abgleich “in jede Richtung” möglich zu machen.
Was ssh-copy-id nun macht ist folgendes: es kopiert den öffentlichen Teil des persönlichen (also nur des ausführenden Benutzers) ssh-Schlüssels in die Datei “/home/$USER/.ssh/authorized_keys” des Zielrechners. Wenn nun eine ssh-Verbindung angefragt wird, überprüft der Zielrechner, ob der ssh-Schlüssel des Anfragenden mit einem der ihm bekannten öffentlichen Schlüssel übereinstimmt. Der Schlüssel hat eine Länge von 2048 Bit. Sicherheitstechnisch also absolut unbedenklich…das ist so, wie wenn man ein Passwort mit 256 Zeichen eingeben müsste.
Hat man die Schlüssel untereinander ausgetauscht, kann man die Möglichkeit sich per Passwort mittels SSH einzuloggen auch ganz deaktivieren, und dadurch “burte force” Angriffe nahezu unmöglich machen.
Die Sache mit ssh-copy-id ist also sicherer, wie wenn man jedesmal einen Benutzernamen und Kennwort eingeben müsste.
Greetz,
wagges
25.03.2010
21:19
tuxflo ¶
Wie kann ich verhindern das Unison die Versteckten- b.z.w. Systemdateien mitsynchronisiert?
lg Flo
26.03.2010
17:16
wagges ¶
Das weiß ich auch nicht… “man unison” oder google hilft
Gruß,
wagges