Zugriff mit SSH/rsync/BorgBackup

Last change on 2023-07-03 • Created on 2020-05-18 • ID: RO-F6D36

SSH / rsync / BorgBackup

Die Storage Box bietet einen erweiterten SSH-Dienst auf dem Port 23. Dieser stellt neben rsync und BorgBackup auch einige übliche Kommandozeilen-Tools bereit.

Um SSH-Zugriff zu erhalten, wählen Sie zunächst im Robot die entsprechende Storage Box aus und aktivieren Sie den SSH-Support. Anschließend können Sie auf die Storage Box via SSH zugreifen:

ssh -p23 uXXXXX@uXXXXX.your-storagebox.de

Ein interaktiver SSH-Zugang ist zwar möglich. Über Port 22 ist kein interaktiver Zugang möglich, dieser steht nur über Port 23 zur Verfügung. Aber es steht keine volle Shell zur Verfügung. Es können z. B. keine Funktionen wie Pipes oder Ausgabe-Umleitungen genutzt werden. Ebenfalls ist es nicht möglich, hochgeladene Skripte auszuführen.

Sie können Befehle auch direkt via SSH ausführen:

ssh -p23 uXXXXX@uXXXXX.your-storagebox.de mkdir new_directory

Sollten Sie einen Sub-Account nutzen, achten Sie bitte darauf, dass auch der Sub-Account Nutzername für die Verbindung verwendet wird.

Bitte beachten Sie, dass für eine SSH-Key-Authentifizierung der öffentliche (public) SSH-Key im normalen OpenSSH-Format auf der Storage Box hinterlegt werden muss und nicht im RFC4716-Format. Eine genaue Anleitung finden Sie auf der Seite Storage Box SSH Keys. Forcierte Kommandos und Client-Beschränkungen werden unterstützt.

Bitte beachten Sie weiterhin, dass auf der Storage Box nur das Verzeichnis /home/ beschreibbar ist. Um Verzeichnisse oder Dateien auf der Storage Box zu adressieren, empfehlen wir Ihnen daher, relative Pfade zu nutzen. Um zum Beispiel die Datei /server1/full_backup.tar.gz von der Storage Box herunterzuladen, können Sie die folgenden Dateipfade verwenden:

server1/full_backup.tar.gz
./server1/full_backup.tar.gz

BorgBackup

Mit BorgBackup können Sie verschlüsselte deduplizierte Backups auf Ihrer Storage Box speichern. Eine Anleitung zur Einrichtung finden Sie unter BorgBackup.

Die Storage Boxen nutzen aktuell Borg 1.2 als Standardversion. Falls Sie eine ältere Borg Version benötigen, können Sie dies mit dem zusätzlichen Argument --remote-path=<borg-version> angeben. Generell empfehlen wir aber diesen Parameter wegzulassen damit immer die neueste Version genutzt wird. Zum Beispiel:

borg init --encryption=repokey --remote-path=borg-X.X ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./borg-repository

Append Only Modus

Es ist möglich Borg in einem Append Only Modus zu nutzen. Dieser erlaubt nur das Erstellen von neuen Archiven aber nicht die Löschung von alten. Sie können in der Dokumentation von BorgBackup eine Anleitung für die Konfiguration finden.

Bitte beachten Sie, dass die Archive noch immer von dem eingeschränkten Client gelöscht werden können. Die Archive werden dabei aber nur als gelöscht markiert und nicht von der Storage Box entfernt. Damit die Archive korrekt gelöscht werden, müssen Sie mit einem anderen, nicht beschränkten, Client eine Lösch- oder Schreiboperation auf dem Borg Repository ausführen. Sie können in der BorgBackup Dokumentation eine Anleitung finden, wie Sie die als gelöscht markierten Archive wiederherstellen können.

rsync

Mittels rsync können Sie komplette Dateiverzeichnisse auf die Storage Box hochladen. Dafür können Sie rsync wie folgt nutzen:

rsync --progress -e 'ssh -p23' --recursive <Lokales Verzeichnis> <Benutzername>@<Benutzername>.your-storagebox.de:<Ziel Verzeichnis>

Um ein Verzeichnis von der Storage Box erneut herunterzuladen, müssen nur die Verzeichnisse vertauscht werden:

rsync --progress -e 'ssh -p23' --recursive <Benutzername>@<Benutzername>.your-storagebox.de:<Verzeichnis> <Lokales Verzeichnis>

Damit Dateien welche auf dem Quellsystem bereits gelöscht wurden, bei einem erneuten Sync ebenfalls vom Zielsystem gelöscht werden, wird noch der Parameter --delete zusätzlich benötigt. Andernfalls bleiben gelöschte Dateien auf dem Zielsystem bestehen und es werden nur Änderungen bzw. neue Dateien übertragen. Zum Beispiel:

rsync --progress --delete -e 'ssh -p23' --recursive <Lokales Verzeichnis> <Benutzername>@<Benutzername>.your-storagebox.de:<Ziel Verzeichnis>

Bitte beachten Sie, dass es nicht möglich ist, die Nutzer- und Gruppen-ID der hochgeladenen Dateien anzupassen. Ebenfalls empfehlen wir nicht, Ihren kompletten Server so zu sichern. Hierfür würden wir Ihnen BorgBackup empfehlen.

SCP

Sie können ebenfalls SCP über den Port 23 nutzen. Um per SCP eine Datei hochzuladen, können Sie folgenden Befehl ausführen:

scp -P 23 <Lokale Datei> <Benutzername>@<Benutzername>.your-storagebox.de:<Remote Datei>

Um die Datei wieder herunterzuladen, müssen Sie nur die Ziel- und Quelldatei vertauschen:

scp -P 23 <Benutzername>@<Benutzername>.your-storagebox.de:<Remote Datei> <Lokale Datei>

SFTP

Der Zugriff mittels SFTP erfolgt ähnlich wie mit einem FTP-Client. Um eine SFTP-Sitzung zu starten, führen Sie bitte folgenden Befehl aus:

sftp -P 23 <Benutzername>@<Benutzername>.your-storagebox.de

Anschließend können Sie mittels put Dateien hochladen und mittels get herunterladen. Mit ls erhalten Sie ein Directory Listing:

sftp> put 100MB.file
Uploading 100MB.file to /home/100MB.file
100MB.file                           100%  100MB  78.7MB/s   00:01
sftp> ls -ahl
drwxr-xr-x    0 12345      12345     16B  Mar 28 10:55 .
dr-x--x--x    0 0          0         10B  Mar 27 12:16 ..
-rw-r--r--    0 12345      12345     100M Mar 28 11:34 100MB.file
sftp> get 100MB.file
Fetching /home/100MB.file to 100MB.file
/home/100MB.file                     100%  100MB 110.6MB/s   00:00
sftp> quit

dd

Sie können mit der Nutzung von dd auch direkt Daten zu der Storage Box hoch- oder herunterladen. Um zum Beispiel eine Archiv Datei unter Linux direkt auf die Storage Box zu kopieren, wäre Folgendes möglich:

tar -cz <Quell-Verzeichnis> | ssh -p23 uXXXXX@uXXXXX.your-storagebox.de "dd of=archive.tar.gz bs=4M"

Um dieses wieder herunterzuladen und direkt zu entpacken, können Sie Folgendes ausführen:

ssh -p23 uXXXXX@uXXXXX.your-storagebox.de "dd if=archive.tar.gz bs=4M" | tar -xz -C <Ziel-Verzeichnis>

Rclone

Rclone wird von den Storage Boxen mithilfe des SFTP-Backends unterstützt. Rclone kann mit Hilfe des Kommandos rclone config konfiguriert werden.

Alternativ kann auch manuell eine Konfiguration erstellt werden. Eine minimale Konfiguration ist die folgende (Standardpfad: ~/.config/rclone/rclone.conf):

[storagebox]
type = sftp
host = uXXXXX.your-storagebox.de
user = uXXXXX
port = 23
pass = <Verschlüsseltes_Passwort>

Das Passwort muss dabei mithilfe des Kommandos rclone obscure <Klartext-Passwort> verschlüsselt werden.

Anstatt das Passwort mittels pass anzugeben kann auch ein SSH Key mit der Konfigurationsoption key_file = <Pfad-zum-Privaten-Key spezifiziert werden.

Die Storage Box kann nun folgendermaßen genutzt werden:

rclone ls storagebox:

Hinweis: Wenn Sie beim Hochladen größerer Verzeichnisse md5-Checksum Fehler erhalten, haben Sie vermutlich das Verbindungslimit für Ihren Account erreicht (max. 10 gleichzeitige Verbindungen). Um dieses Verhalten zu vermeiden, können Sie das Flag --checkers=<count lower 8> für SFTP Verbindungen oder --ftp-concurrency=10 für FTP Verbindungen zu Ihrem Befehl hinzufügen.

Bitte prüfen Sie die Rclone Dokumentation für mehr Details.

Restic

Restic wird über das SFTP Backend unterstützt. Optional kann auch das restic Backend von Rclone über SSH genutzt werden.

Cpanel und JetBackup

Eine Anleitung hierfür können Sie hier finden.

SSH-Host-Keys

Um die Authentizität der Verbindung sicherzustellen, können Sie die Host Keys der Storage Box mit den folgenden Keys vergleichen.

SHA256:XqONwb1S0zuj5A1CDxpOSuD2hnAArV1A3wKY7Z3sdgM (ED25519)
SHA256:EMlfI8GsRIfpVkoW1H2u0zYVpFGKkIMKHFZIRkf2ioI (RSA)
SHA256:RWkLouD9tfTwdboJOzjiWo5njZI59Hcta82ttAWxDA0 (DSA)
SHA256:oDHZqKXnoMtgvPBjjC57pcuFez28roaEuFcfwyg8O5c (ECDSA)

Verfügbare Befehle

Es stehen die folgenden Befehle auf der Storage Box zur Verfügung:

ls
stat
cd
pwd
mkdir
rmdir
touch
du
df
dd
cp
rm
unlink
mv
chmod
cat
tail
head
grep
md5
sha1
sha256
sha512
md5sum
sha1sum
sha256sum
sha512sum
Table of Contents