skweez.net

Alles skweez?

1001111101100010001100101010101

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.local

ausfü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.sh

Skript 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.sh

Jetzt 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.

5 Kommentare:

24.03.2010
23:46

Antworten

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

Antworten

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

Antworten

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

Antworten

tuxflo

Wie kann ich verhindern das Unison die Versteckten- b.z.w. Systemdateien mitsynchronisiert?

lg Flo

Etwas dazu sagen: