Zum Inhalt springen
IDO DNS Service
Alle Themen

Backup mit BorgBackup in den Cloud-Speicher

Cloud-Speicher · Linux-Server

Zuletzt überarbeitet am

Für Linux-Server, die mit Borg sichern oder es künftig sollen. Am Ende liegt eine verschlüsselte Sicherung außer Haus — verschlüsselt wird auf Ihrem Server, bei uns kommt nichts Lesbares an.

Verschlüsseln Sie, bevor die Daten hochgehen

Der Speicher gehört uns. Wir könnten jederzeit ihr Passwort zurücksetzen und hineinsehen — technisch, ohne dass es jemand verhindern könnte. Verschlüsseln Sie auf Ihrem eigenen Rechner, dann liegt bei uns Zeichensalat: Wir sehen, wie groß Ihre Sicherung ist, und sonst nichts.

Das Werkzeug dürfen Sie sich aussuchen — jedes auf dieser Seite kann es. Die Passphrase gehört nur Ihnen. Wir speichern sie nicht, wir kennen sie nicht, und wir können sie Ihnen nicht wiederbeschaffen: Ohne Passphrase ist die Sicherung verloren. Genau das ist der Sinn — und der Preis. Sie gehört in Ihren Passwortspeicher und nicht auf den Rechner, den Sie sichern.

Passphrase erzeugen

Entsteht in Ihrem Browser und verlässt dieses Fenster nicht — es geht kein Aufruf an uns hinaus. Übertragen Sie sie in Ihren Passwortspeicher, bevor Sie weiterlesen.

24 Zeichen aus einem Alphabet ohne verwechselbare Buchstaben — rund 117 Bit. Die Bindestriche sind nur zum Lesen da; sie gehören mit in die Passphrase.

Sie brauchen Server, Benutzername und Passwort Ihres Speichers. Sie stehen im Kundenbereich unter Cloud-Speicher. Der Server heißt kunde1-7.speicher.idodns.de, der Benutzername kunde1 — in den Beispielen unten stehen sie als Platzhalter. Der SSH-Port ist 23, nicht 22; das ist die häufigste Ursache für „Verbindung abgelehnt“. Und Ihr Verzeichnis ist /home/ — im Wurzelverzeichnis dürfen Sie nicht schreiben.

Diese Anleitung gehört zu Cloud-Speicher von IDO DNS Service — was die Leistung kann und was sie kostet.

Warum Borg für einen Linux-Server

Borg entdeckt doppelte Datenblöcke und überträgt sie nur einmal. Die zweite Sicherung eines Servers ist deshalb oft ein Bruchteil der ersten — und weil unser Speicher Borg auf der Gegenseite mitlaufen lässt, wird das Aussortieren dort erledigt und nicht über Ihre Leitung. Bei einem Server, der sich täglich nur wenig ändert, ist das der Unterschied zwischen Minuten und Stunden.

Was Sie brauchen

  • Einen Linux-Server mit root-Zugang und BorgBackup 1.1 oder neuer — auf der Gegenseite läuft eine passende Fassung mit (borg-1.1, borg-1.2, borg-1.4).
  • Server, Benutzername und Passwort Ihres Speichers aus dem Kundenbereich unter Cloud-Speicher — das Passwort nur für das Hinterlegen des Schlüssels in Schritt 2; danach läuft alles über den Schlüssel.
  • OpenSSH auf dem Server; für ssh-copy-id -s ab Fassung 8.5, sonst den Schlüssel von Hand über SFTP.
  • Die Passphrase aus dem Kasten oben — im Passwortspeicher, bevor es losgeht.

Einrichten

  1. Borg installieren

    # Debian, Ubuntu apt install borgbackup # RHEL, Rocky, Alma dnf install borgbackup
  2. Schlüssel hinterlegen, damit kein Passwort mehr nötig ist

    # Falls noch kein Schlüssel da ist ssh-keygen -t ed25519 # Auf den Speicher übertragen. Das -s ist nötig: Dort # keine Shell, der Schlüssel geht über SFTP hinüber. ssh-copy-id -p 23 -s kunde1@kunde1-7.speicher.idodns.de

    Das -s braucht OpenSSH 8.5 oder neuer. Auf älteren Systemen laden Sie ~/.ssh/id_ed25519.pub von Hand nach .ssh/authorized_keys auf dem Speicher.

  3. Passphrase ablegen — lesbar nur für root

    # Die oben erzeugte Passphrase eintragen: install -m 600 /dev/null /root/.borg-passphrase nano /root/.borg-passphrase

    Und in den Passwortspeicher. Diese Datei liegt auf genau dem Rechner, dessen Ausfall Sie mit der Sicherung abfangen wollen — sie ist eine Bequemlichkeit für den laufenden Betrieb, keine Aufbewahrung.

  4. Repository anlegen — mit Verschlüsselung

    export BORG_REPO='ssh://kunde1@kunde1-7.speicher.idodns.de:23/./sicherung' export BORG_PASSCOMMAND='cat /root/.borg-passphrase' export BORG_REMOTE_PATH='borg-1.4' borg init --encryption=repokey-blake2

    Der Punkt in /./sicherung gehört dazu. Er bedeutet „ab meinem Heimatverzeichnis“ — dort dürfen Sie schreiben. Ohne ihn zeigt der Pfad auf das Wurzelverzeichnis, und das ist schreibgeschützt: Ein SSH-Zugang, der in ein Verzeichnis eingesperrt ist, bekommt genau dieses schreibgeschützt, sonst verweigert der Dienst die Anmeldung ganz. Der Fehler lautet dann nur „Failure“ und sagt nicht, woran es liegt.

    repokey-blake2 legt den Schlüssel ins Repository. Verschlüsselt, geschützt durch Ihre Passphrase — und das ist hier die richtige Wahl: Bei keyfile läge er nur lokal und wäre mit dem Rechner weg, den Sie gerade wiederherstellen wollen.

    BORG_REMOTE_PATH wählt die Borg-Fassung auf der Gegenseite. Ohne Angabe ist es 1.2.

  5. Die erste Sicherung

    borg create --stats --compression zstd \ ::'{hostname}-{now:%Y-%m-%d_%H%M}' \ /etc /home /var/www /var/lib/mysql-backup

    Datenbanken gehören nicht als laufende Dateien in die Sicherung — sie sind mitten im Schreiben und danach unbrauchbar. Erst ein Dump (mysqldump, pg_dump) in ein Verzeichnis, dieses Verzeichnis dann mitsichern.

  6. Prüfen, dass wirklich etwas angekommen ist

    borg list borg info ::'{hostname}-2026-01-15_0300'

Täglich laufen lassen

Ein Skript unter /usr/local/sbin/sicherung.sh, ausführbar für root:

#!/bin/bash set -euo pipefail export BORG_REPO='ssh://kunde1@kunde1-7.speicher.idodns.de:23/./sicherung' export BORG_PASSCOMMAND='cat /root/.borg-passphrase' export BORG_REMOTE_PATH='borg-1.4' borg create --compression zstd ::'{hostname}-{now:%Y-%m-%d_%H%M}' \ /etc /home /var/www # Aufräumen: eine Woche täglich, ein Monat wöchentlich, # ein halbes Jahr monatlich. borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 borg compact

Und ein Eintrag in crontab -e für root:

15 3 * * * /usr/local/sbin/sicherung.sh

borg compact gehört dazu: Ohne diesen Schritt gibt prune den Platz nicht frei, und der Speicher läuft voll, obwohl die alten Sicherungen längst verschwunden sind.

Eine Sicherung, die nie zurückgespielt wurde, ist keine Sicherung. Holen Sie einmal im Quartal eine einzelne Datei zurück — das dauert eine Minute und ist der einzige Beweis, dass Passphrase, Zugang und Archiv zusammen funktionieren. Der Tag, an dem Sie es zum ersten Mal ernsthaft brauchen, ist der falsche Tag zum Ausprobieren.

Wiederherstellen

# Welche Archive gibt es? borg list # Eine einzelne Datei zurückholen (in das aktuelle Verzeichnis) borg extract ::'server-2026-01-15_0300' etc/nginx/nginx.conf # Oder das Archiv als Verzeichnis einhängen und darin blättern mkdir /mnt/sicherung borg mount ::'server-2026-01-15_0300' /mnt/sicherung # ... nach getaner Arbeit: borg umount /mnt/sicherung

Wenn es nicht klappt

„Connection refused“ oder Zeitüberschreitung

Fast immer der Port. Der Speicher hört auf 23, nicht auf 22 — im Borg-Pfad steht er hinter dem Doppelpunkt (…speicher.idodns.de:23/./sicherung), bei ssh und rsync als -p 23.

„Repository does not exist“

Der Pfad braucht das /./ in der Mitte. Es bedeutet „relativ zum Heimatverzeichnis“; ohne den Punkt sucht Borg im Wurzelverzeichnis der Speichers, und dort dürfen Sie nichts anlegen.

„Remote: Borg server is too old“

Die Fassungen passen nicht zusammen. Setzen Sie BORG_REMOTE_PATH auf borg-1.4 (oder borg-1.1, wenn Ihr lokales Borg älter ist).

Der Speicher ist voll

Erst nachsehen, ob borg compact läuft — ohne diesen Schritt bleibt gelöschter Platz belegt. Reicht das nicht, stocken wir im Kundenbereich auf: Er wird im laufenden Betrieb umgestellt, Server, Benutzername und Passphrase bleiben, und an Ihrem Skript ändert sich nichts.

Lieber ein anderes Werkzeug? restic für gemischte Umgebungen, rsync und NAS, Windows ohne Kommandozeile.

Wie es weitergeht

Die erste Sicherung ist durch, der Cron-Eintrag steht — ab jetzt läuft es jede Nacht. Tragen Sie sich gleich einen Termin in drei Monaten ein: eine Datei mit borg extract zurückholen, wie oben unter „Wiederherstellen“. Erst dann wissen Sie, dass Passphrase, Schlüssel und Repository zusammenpassen — und borg info zeigt dabei, ob compact den Platz wirklich freigibt.

Der nächste Rechner ist selten wieder ein Linux-Server: Für den Laptop nimmt man restic oder Duplicati, für das NAS beim Kunden Hyper Backup. Und steht dieser Server in einem Kundennetz ohne feste Adresse, kommen Sie mit dem Fernzugriff per WireGuard an ihn heran — ohne Portfreigabe, um nachzusehen, ob die Sicherung wirklich gelaufen ist.

Weiter im selben Bereich

restic

Linux, Windows, macOS

Kopia

Windows, Linux, macOS

Ihr Gerät ist nicht dabei? Alle Anleitungen

Kommen Sie nicht weiter? Sehen Sie zuerst unter Häufige Fragen nach.

Steht die Antwort dort nicht, schreiben Sie uns an info@idodns.de — mit dieser Anleitung im Betreff. Was mehrfach gefragt wird, steht danach hier.