splitt-it.de

my digital lifestyle

Home » splitt-it.de » HOT News » SSH ohne Passwort und rsync nach Strato-Hidrive bzw. nach anderen NAS-Systemen

Ich habe zwar von Strato die Synology-NAS, dennoch nutze ich meine QNAP-NAS als zentrale Speichereinheit. Nennt mich Paranoid, aber die Synology-NAS ist rein als Backup der QNAP-NAS gedacht. Man weiß ja nie 😉

Zunächst etwas Theorie: Ich will ein Backup meiner QNAP-NAS auf eine Synology-NAS und nach Strato-Hidrive. Das ganze Jobgesteuert, z.B. täglich…

SSH oder rsync ohne Passwort

Zunächst ist es wichtig, dass man Passwörter nicht unbedingt als Klartext ins Dateisystem ablegt. Dafür gibt es die Möglichkeit mit Schlüsseln zu arbeiten, einen Privaten und einen Öffentlichen. Das theoretische Verfahren möchte ich nicht intensiv erklären, deshalb Wikipedia für mehr Infos dazu…

Nun zum praktischen, die Generierung eines Schlüssels… Dafür müsst Ihr auf die Shell Eures Linux-Systems, bei mir die QNAP-NAS. Wichtig ist, dass Ihr nun mit einem User den Schlüssel erstellt, der auf die Daten die gesichert werden sollen zugreifen kann und die Sicherung durchführen soll. Im Zweifelsfall nehmt den root oder admin. In der Shell führt Ihr den Befehl

ssh-keygen -t rsa

aus. Bei der Frage nach einer Passphrase könnt Ihr einfach zwei mal Enter drücken. Das war es im Endeffekt fast, der öffentliche Schlüssel wurde erstellt und liegt im Pfad

~/.ssh/id_rsa.pub

Dabei gilt ~ als das Home-Verzeichnis des angemeldeten Benutzers… Diesen Key müsst Ihr auf das Zielsystem kopieren oder Strato übermitteln. Bei Strato ist das echt simpel in der Weboberfläche realisiert.

Ihr habt den Key von oben kopiert, z.B. nach /tmp/id_rsa.pub auf dem System, wo Ihr hin sichern wollt. In meinem Beispiel halt die Synology-NAS. Jetzt meldet Ihr Euch auch auf diesem System in der Shell an. Bitte unter dem User, der entsprechende Schreibrechte hat, wo Eure Daten abgelegt werden sollen. Im Zweifelsfall wieder root oder admin…

Jetzt ist es total simpel, gebt einfach den Befehl

cat /tmp/id_rsa.pub >>~/.ssh/authorized_keys
chmod 700 ~/.ssh/authorized_keys

ein. Damit wird der öffentliche Schlüssel dem System für diesen User bekannt gemacht. Es ist Euch möglich ohne Eingabe eines Passwortes die Anmeldung an das Zielsystem per rsync oder ssh durchzuführen.

rsync zum sichern

Sowohl nach Strato, als auch nach meiner Synology-NAS sichere ich per rsync. Das ganze ist total easy, ich habe dafür ein Script erstellt:

SCRIPTPATH="/pfad/zum/script"
SERVER="IP oder FQDN"
USER="der Benutzer, der den öffentlichen RSA-Key bekommen hat"
TARGET="/wo/wird/auf/dem/Zielsystem/hingesichert"
# bei Strato sieht das in etwa so aus
TARGET="/users/"$USER"/Ziel/wo/hin/gesichert/werden/soll"
ERROR=${SCRIPTPATH}"/error.log"
INCLUDE=${SCRIPTPATH}"/include"
EXCLUDE=${SCRIPTPATH}"/exclude"
RSYNC=/usr/bin/rsync
RSYNC_OPTIONS="-avrz --delete --ignore-errors --log-file=${ERROR} -e ssh"
CAT=/bin/cat
CHECK_REMOTE=`ping -c 1 $SERVER | grep packet | awk '{print $4}'`
SOURCE="/Pfad/der/gesichert/werden/soll"
if [ $CHECK_REMOTE == 1 ]; then
  ${RSYNC} ${RSYNC_OPTIONS} ${SOURCE} ${USER}@${SERVER}:${TARGET} --files-from=${INCLUDE} --exclude-from=${EXCLUDE}
  if [`cat ${ERROR} | grep 'error' | wc -c` -gt 1 ]
  then
    echo "Verarbeitung erfolgreich beendet"
  else
    echo "Verarbeitung fehlerhaft beendet (siehe Log: ${ERROR})"
  fi
else
  echo "Server nicht erreichbar..."
fi

Include und Exclude sind somit Liste, wo Ihr bestimme Verzeichnisse inkludieren oder exkludieren könnt (ach, was ne schöne Erklärung, aber mir fällt gerade nix besseres ein…). Dabei ist wichtig, dass die Pfadangaben ausgehend von dem Pfad unter Source gelten… Wenn Ihr z.B. /Sicherung/ sichern wollt, aber das Unterverzeichnis /Sicherung/nichtsichern/ nicht sichern wollt, dann ist „SOURCE=/Sicherung“ und in dem File exclude muss eine Zeile „/nichtsichern“ stehen.

Das Script ist ansonsten relativ selbsterklärend. OK, der rsync-Aufruf ist durch die vielen Variablen etwas kryptisch, aber vom Prinzip her ist das echt simpel. Anstatt der Rückmeldung habe ich eine Mailbenachrichtigung bei Fehlern.  Das Script kann z.B. täglich als Cronjob aktiviert werden.

splitti

Technik-Fan Leidenschaft: TimeLapse / HyperLase

2 Antworten bislang...

  1. tatoosh sagt:

    Danke für deine Anleitung über rsync backup.
    Gleiches Szenario plane ich auch gerade: QNAP -> hiDrive Backup.

    Hast du mittlerweile Erfahrungen gesammelt?
    Bist du zufrieden mit der Lösung?

    Gruß TaToosh

    • splitti sagt:

      Hallo tatoosh… Ich bin damit sehr zufrieden. Mittlerweile habe ich den Speicher zwar aufgestockt, aber das ist mir das Backup wert.
      Die erste Synchronisation ist natürlich ewig lange bei einigen GB’s, aber das Script läuft bei mir alle sechs Stunden und rennt zack zack durch…


?