Dateien sicher über SSH übertragen – mit scp, rsync & Co.

🔐 Einführung: Dateien sicher über SSH übertragen

Ob Backups, Website-Daten oder persönliche Dokumente – wer Dateien auf einen Server übertragen will, sollte auf Sicherheit und Effizienz achten. Dieses Tutorial zeigt dir, wie du mit scp, rsync und sshfs Dateien zuverlässig und verschlüsselt über SSH verschickst. Du lernst die wichtigsten Befehle, Automatisierungstipps und bekommst ein Beispielskript für deine eigenen Backup-Workflows.


📘 Tutorial: Dateien sicher über SSH übertragen

1. Voraussetzungen

  • Ein Server mit aktivem SSH-Dienst (z. B. sshd).
  • Lokaler Rechner mit installiertem OpenSSH (Linux/macOS standardmäßig, unter Windows via PowerShell oder WSL).
  • Zugangsdaten: Benutzername und IP/Hostname des Servers.
  • Optional: SSH-Schlüssel für passwortlosen Login.

2. Methode 1 – scp (Secure Copy)

Grundsyntax

scp [OPTIONEN] QUELLE ZIEL

Beispiel: Datei hochladen

scp backup.sql made@meinserver:/var/backups/

Beispiel: Verzeichnis rekursiv kopieren

scp -r /home/made/fotos markus@meinserver:/data/

👉 Vorteil: Schnell und einfach. 👉 Nachteil: Kopiert immer alles neu, keine Synchronisation.


3. Methode 2 – rsync (Remote Sync)

Grundsyntax

rsync [OPTIONEN] QUELLE ZIEL

Beispiel: Fotos synchronisieren

rsync -avz /home/made/fotos/ markus@meinserver:/data/fotos/
  • -a → Archivmodus (Rechte, Symlinks, etc. bleiben erhalten)
  • -v → Verbose (Ausgabe anzeigen)
  • -z → Kompression während der Übertragung
  • --delete → Entfernt Dateien auf dem Ziel, die lokal nicht mehr existieren

👉 Vorteil: Nur geänderte Dateien werden übertragen → ideal für Backups. 👉 Nachteil: Etwas komplexer als scp.


4. Methode 3 – SSHFS (Dateisystem über SSH einbinden)

Beispiel: Remote-Verzeichnis mounten

sshfs made@meinserver:/data/fotos /mnt/fotos

👉 Danach kannst du Dateien wie lokal bearbeiten. 👉 Praktisch für interaktive Arbeit, weniger für große Backups.


5. Best Practices als Admin

  • SSH-Schlüssel nutzen:bashssh-keygen -t ed25519 ssh-copy-id made@meinserver
  • Automatisierung: rsync in ein Bash-Skript packen und per cron oder systemd-Timer regelmäßig ausführen.
  • Logging: Mit --log-file=/pfad/log.txt bei rsync nachvollziehbare Backups erstellen.
  • Fehlerhandling: Exit-Codes prüfen ($? in Bash), um bei Problemen Benachrichtigungen auszulösen.

6. Mini-Beispielskript für Backups

#!/bin/bash
# Backup-Skript mit rsync

QUELLE="/home/markus/fotos/"
ZIEL="made@meinserver:/data/fotos/"
LOG="/var/log/foto-backup.log"

rsync -avz --delete "$QUELLE" "$ZIEL" >> "$LOG" 2>&1

if [ $? -eq 0 ]; then
  echo "$(date) - Backup erfolgreich" >> "$LOG"
else
  echo "$(date) - Backup FEHLGESCHLAGEN" >> "$LOG"
fi

© 2025 MaDe-Online