🧰 Voraussetzungen
- Raspberry Pi läuft mit SSH-Server (`openssh-server`)
- SSD ist bereits gemountet unter `/media/san2tb`
- Dein Client (der Duplicati ausführt) ist Linux
🔐 1. SSH-Schlüsselpaar auf dem Client erstellen
Auf dem Rechner, auf dem Duplicati läuft, wird ein Schlüsselpaar erstellt
ssh-keygen -t ed25519 -f ~/.ssh/sftpusr_key -N ""
Ergebnis:
Private Key: `~/.ssh/sftpusr_key`
Öffentlicher Key: `~/.ssh/sftpusr_key.pub`
Der Parameter `-N „“` sorgt für kein Passwort.
👤 2. Neuen Benutzer auf dem Raspberry Pi erstellen
Optional: Verhindere SSH-Login mit Passwort:
sudo adduser --disabled-password --gecos "" sftpusr sudo passwd -l sftpusr # sudo usermod -d /home/sftpusr sftpusr sudo usermod -s /usr/sbin/nologin sftpusr
🔑 3. SSH-Zugang mit Schlüssel einrichten
1. Verzeichnisse erstellen:
sudo mkdir -p /home/sftpusr/.ssh sudo chown sftpusr:sftpusr /home/sftpusr/.ssh sudo chmod 700 /home/sftpusr/.ssh
2. Öffentlichen Schlüssel auf Pi übertragen:
ssh-copy-id -i ~/.ssh/sftp_user_key.pub sftp-user@raspi
Oder manuell:
cat ~/.ssh/sftpusr_key.pub | ssh pi@ "sudo tee /home/sftpusr/.ssh/authorized_keys" sudo chown sftpusr:sftpusr /home/sftpusr/.ssh/authorized_keys sudo chmod 600 /home/sftpusr/.ssh/authorized_keys
📁 4. Schreibrechte auf externe SSD einrichten
Angenommen, das Backup-Ziel ist: `/media/san2tb/backup_x13g3`
Ordner erstellen und Besitzerrechte auf `sftpusr` ändern:
sudo mkdir -p /media/san2tb/backup_x13g3 sudo chown -R sftpusr:sftpusr /media/san2tb/backup_x13g3
`sftpusr` braucht Schreibrechte in diesem Ordner – ohne Zugriff auf andere SSD-Bereiche.
🔐 5. Optional: Nur SFTP (kein SSH-Terminal)
Den User auf reines SFTP einschränken. Das ist empfohlen für Backup-Ziele. SSH-Konfiguration auf dem Pi anpassen:
sudo nano /etc/ssh/sshd_config
Am Ende einfügen:
Match User sftpusr
ForceCommand internal-sftp
ChrootDirectory /home/sftpusr
PermitTTY no
AllowTcpForwarding no
X11Forwarding no
Das sperrt `sftpusr` in `/home/sftpusr`. Dann muss das Backup-Verzeichnis darin sein.
⚠️ WICHTIG:
`ChrootDirectory` muss root gehören, sonst funktioniert SFTP nicht.
sudo chown root:root /home/sftpusr sudo chmod 755 /home/sftpusr sudo mkdir -p /home/sftpusr/backup sudo chown sftpusr:sftpusr /home/sftpusr/backup
Temporär zum testen:
sudo mount --bind /media/san2tb/backup_x13g3 /home/sftpusr/backup sudo systemctl restart ssh
Mount dauerhaft via /etc/fstab einbinden.
Am Ende der Datei einfügen:
/media/san2tb/backup_x13g3 /home/sftpusr/backup none bind 0 0
🔄 6. In Duplicati einrichten
Neues Backup erstellen
- Zieltyp: `SFTP (SSH)`
- Server und Pfad:
Server: IP des Raspberry Pi
Pfad:
Wenn `ChrootDirectory` gesetzt:/backup
Sonst (z. B. ohne Chroot):/home/sftpusr/backup - Authentifizierung:
Benutzername:sftpusr
Passwort: bleibt leer
SSH Private Key (ohne Passphrase):
Lade `/source/.ssh/sftpusr_key` hoch oder kopiere den Inhalt rein. - Testverbindung klicken
✅ Fertig!