Synchronisierung von Verzeichnissen

Auf dem Server zunächst einen Benutzer anlegen der Zugriff auf die Dateien hat die wir synchronisieren wollen.

useradd rsyncuser -c "User um Daten zu bekommen" -d /SYNCVERZECIHNIS -s /bin/sh -U


Passwort erstellen und festlegen

pwgen -s -y 14
passwd rsyncuser


SSH Schlüsselpaar erzeugen SSH Key generieren
Authorized_keys Datei erstellen
Prüfen ober der User sich per ssh anmelden darf

Wrapper script im Home Verzeichnis erstellen

nano /SYNCVERZEICHNIS/checkssh.sh
#!/bin/bash
if [ -n "$SSH_ORIGINAL_COMMAND" ]; then
    if [[ "$SSH_ORIGINAL_COMMAND" =~ ^rsync\  ]]; then
        logger "`/bin/date`: $SSH_ORIGINAL_COMMAND"
        exec $SSH_ORIGINAL_COMMAND
    else
        logger "`/bin/date`: DENIED $SSH_ORIGINAL_COMMAND"
    fi
fi
chmod +x checkssh.sh


Authorized_keys File anpassen

nano .ssh/authorized_keys
command="/SYNCVERZEICHNIS/checkssh.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ecdsa-sha2-nistp521 AAAA...


Sync durchführen

rsync -auv --delete -e "ssh -i id_rsyncuser_ecdsa" rsyncuser@SERVER:/SYNCVERZEICHNIS/* SYNCVERZEICHNIS/

Rsync Client

Ein Rsync Client mit grafischer Ausgabe ist hier