restic (4) – rclone für sftp

Dies ist der vierte Artikel der Serie zu restic (1) – Backups done right! Wir haben bisher den sftp Server vorbereitet (restic (2) – sftp Server vorbereiten) und die Docker Software installiert (restic (3) – Docker auf Synology). Jetzt kümmern wir uns um den sftp Client und die rclone Software.

rclone installieren

Melde dich auf deiner Synology in einem Terminal an und werde root:

$ sudo su -

Installiere rclone

# curl https://rclone.org/install.sh | sudo bash

Erstelle einen Ordner rclone unter /volume1/docker, in dem wir die rclone Konfigurationsdateien speichern werden. Dieses Verzeichnis werden wir später dem restic Docker Container zur Verfügung stellen.

# mkdir /volume1/docker/rclone

Privaten Schlüssel einrichten

Kopiere den privaten Schlüssel certififcate.pem, den wir in restic (2) – sftp Server vorbereiten erstellt hatten, in die Datei /volume1/docker/certificate.pem. Du kannst die Datei mit cat anlegen und dann via copy-paste den Inhalt von deinem Windows Rechner übertragen. Mit Ctrl-D beendest du die Eingabe und speicherst die Datei.

# cat > /volume1/docker/certificate.pem
(paste content)
Ctrl-D

Stelle sicher, dass nur du den Inhalt des privaten Schlüssels sehen kannst:

# chmod 400 /volume1/docker/certificate.pem 

Teste den Schlüssel mit sftp am Domain Factory server. ssh-username ist dein Nutzername auf dem server und 1111111111.hostingkunde.de ist der Hostname.

# sftp -i /volume1/docker/certificate.pem ssh-username@1111111111.hostingkunde.de
Connected to 1111111111.hostingkunde.de.
sftp> 

Du siehst nun ohne Kennworteingabe den sftp> Prompt. Mit „quit“ beendest du sftp.

sftp> quit

rclone konfigurieren

Wir erstellen eine rclone Konfiguration, die wir in der Datei /volume1/docker/rclone/rclone.conf speichern:

# rclone config --config /volume1/docker/rclone/rclone.conf
2021/12/28 20:44:50 NOTICE: Config file "/volume1/docker/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

Mit „n“ erstellen wir die neue Konfiguration.

n/s/q> n
name>

Wir geben „domain-factory“ als Namen an.

name> domain-factory
Option Storage.
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value.
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Better checksums for other remotes
\ "hasher"
7 / Box
\ "box"
8 / Cache a remote
\ "cache"
9 / Citrix Sharefile
\ "sharefile"
10 / Compress a remote
\ "compress"
11 / Dropbox
\ "dropbox"
12 / Encrypt/Decrypt a remote
\ "crypt"
13 / Enterprise File Fabric
\ "filefabric"
14 / FTP Connection
\ "ftp"
15 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
16 / Google Drive
\ "drive"
17 / Google Photos
\ "google photos"
18 / Hadoop distributed file system
\ "hdfs"
19 / Hubic
\ "hubic"
20 / In memory object storage system.
\ "memory"
21 / Jottacloud
\ "jottacloud"
22 / Koofr
\ "koofr"
23 / Local Disk
\ "local"
24 / Mail.ru Cloud
\ "mailru"
25 / Mega
\ "mega"
26 / Microsoft Azure Blob Storage
\ "azureblob"
27 / Microsoft OneDrive
\ "onedrive"
28 / OpenDrive
\ "opendrive"
29 / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
30 / Pcloud
\ "pcloud"
31 / Put.io
\ "putio"
32 / QingCloud Object Storage
\ "qingstor"
33 / SSH/SFTP Connection
\ "sftp"
34 / Sia Decentralized Cloud
\ "sia"
35 / Sugarsync
\ "sugarsync"
36 / Tardigrade Decentralized Cloud Storage
\ "tardigrade"
37 / Transparently chunk/split large files
\ "chunker"
38 / Union merges the contents of several upstream fs
\ "union"
39 / Uptobox
\ "uptobox"
40 / Webdav
\ "webdav"
41 / Yandex Disk
\ "yandex"
42 / Zoho
\ "zoho"
43 / http Connection
\ "http"
44 / premiumize.me
\ "premiumizeme"
45 / seafile
\ "seafile"
Storage>

Als Storage Option wählen wir „33“ für sftp.

Storage> 33
Option host.
SSH host to connect to.
E.g. "example.com".
Enter a string value. Press Enter for the default ("").
host>

Dann geben wir den sftp Hostnamen ein:

host> 1111111111.hostingkunde.de
Option user.
SSH username, leave blank for current username, root.
Enter a string value. Press Enter for the default ("").
user>

Nun den Usernamen auf dem entfernten Host

user>  ssh-username 
Option port.
SSH port, leave blank to use default (22).
Enter a string value. Press Enter for the default ("").
port>

Als Port nehmen wir den default Wert und drücken direkt die Eingabetaste.

port>
Option pass.
SSH password, leave blank to use ssh-agent.
Choose an alternative below. Press Enter for the default (n).
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n>

Das Kennwort bleibt leer, also der Default Wert „n“

y/g/n>
Option key_pem.
Raw PEM-encoded private key.
If specified, will override key_file parameter.
Enter a string value. Press Enter for the default ("").
key_pem>

Auch den Private Key lassen wir hier leer und drücken die Eingabetaste

key_pem>
Option key_file.
Path to PEM-encoded private key file.
Leave blank or set key-use-agent to use ssh-agent.
Leading ~ will be expanded in the file name as will environment variables such as ${RCLONE_CONFIG_DIR}.
Enter a string value. Press Enter for the default ("").
key_file>

Nun geben wir den Pfad zur Datei mit dem privaten Key an.

key_file> /volume1/docker/certificate.pem
Option key_file_pass.
The passphrase to decrypt the PEM-encoded private key file.
Only PEM encrypted key files (old OpenSSH format) are supported. Encrypted keys
in the new OpenSSH format can't be used.
Choose an alternative below. Press Enter for the default (n).
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n>

Wir haben keine Passphrase, also gleich die Eingabtaste drücken.

y/g/n>
Option pubkey_file.
Optional path to public key file.
Set this if you have a signed certificate you want to use for authentication.
Leading ~ will be expanded in the file name as will environment variables such as ${RCLONE_CONFIG_DIR}.
Enter a string value. Press Enter for the default ("").
pubkey_file>

Wir brauchen keinen public Key hier. Eingabetaste drücken.

pubkey_file>
Option key_use_agent.
When set forces the usage of the ssh-agent.
When key-file is also set, the ".pub" file of the specified key-file is read and only the associated key is
requested from the ssh-agent. This allows to avoid Too many authentication failures for *username* errors
when the ssh-agent contains many keys.
Enter a boolean value (true or false). Press Enter for the default ("false").
key_use_agent>

Wir nutzen ssh-agent nicht, gleich die Eingabetaste drücken

key_use_agent>
Option use_insecure_cipher.
Enable the use of insecure ciphers and key exchange methods.
This enables the use of the following insecure ciphers and key exchange methods:
- aes128-cbc
- aes192-cbc
- aes256-cbc
- 3des-cbc
- diffie-hellman-group-exchange-sha256
- diffie-hellman-group-exchange-sha1
Those algorithms are insecure and may allow plaintext data to be recovered by an attacker.
Enter a boolean value (true or false). Press Enter for the default ("false").
Choose a number from below, or type in your own value.
1 / Use default Cipher list.
\ "false"
2 / Enables the use of the aes128-cbc cipher and diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key exchange.
\ "true"
use_insecure_cipher>

Wir benutzen keine unsicheren Cipher. So nehmen wir den Default Wert und drücken die Eingabetaste

use_insecure_cipher>
Option disable_hashcheck.
Disable the execution of SSH commands to determine if remote file hashing is available.
Leave blank or set to false to enable hashing (recommended), set to true to disable hashing.
Enter a boolean value (true or false). Press Enter for the default ("false").
disable_hashcheck>

Wir behalten die Prüfung des Hash Wertes bei. So nehmen wir den Default Wert und drücken die Eingabetaste

disable_hashcheck>
Edit advanced config?
y) Yes
n) No (default)
y/n>

Wir benötigen keine weiteren Details der Advanced Config. So nehmen wir den Default Wert und drücken die Eingabetaste

y/n>
--------------------
[domain-factory]
type = sftp
host = 1111111111.hostingkunde.de
user = ssh-username
port = 22
key_file = /volume1/docker/certificate.pem
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>

Wir bestätigen die Eingabe mit „y“ (default mit Eingabetaste)

y/e/d>
Current remotes:

Name Type
==== ====
domain-factory sftp

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

Wir beenden die Konfiguration mit „q“

e/n/d/r/c/s/q> q
#

Jetzt testen wir rclone mit dem test memory flags (Man page: „Load all the objects at remote:path into memory and report memory stats.“)

# rclone test memory --config=/volume1/docker/rclone/rclone.conf domain-factory
2021/12/28 21:07:00 NOTICE: 1 objects took -104 bytes, -104.0 bytes/object
2021/12/28 21:07:00 NOTICE: System memory changed from 16073736 to 16073736 bytes a change of 0 bytes

Es gabe keine Fehlermeldung. Alles ist gut. Wir können weiter machen und den restic Docker Container im nächsten Schritt konfigurieren (restic (5) – restic Docker Container).

Liste aller Artikel dieser Serie

restic (1) – Backups done right! – Einführung

restic (2) – sftp Server vorbereiten – Der Login muss mit einem SSL Zertifikat ohne Password möglich sein, damit restic über rclone darauf zugreifen kann.

restic (3) – Docker auf Synology – Installation des Docker containers

restic (4) – rclone für sftp – dieser Beitrag

restic (5) – restic Docker Container – Konfiguration und manueller Test des restic Docker Containers

restic (6) – restic Backup – Einrichten vom restic Backup

restic (7) – restic Restore – Testen der Wiederherstellung von Dateien aus restic Snapshots auf Windows 10.

restic (8) – rclone für OneDrive – Einrichtug des OneDrive Zugriffs für rclone

restic (9) – restic für OneDrive – OneDrive Konfiguration und manueller Test des restic Docker Containers

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.