Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Affiliate
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

rsync-Befehle: Daten effizient synchronisieren

rsync (Remote Sync) synchronisiert Dateien und Verzeichnisse — lokal oder über eine SSH-Verbindung. Seine Stärke ist die Delta-Übertragung: rsync vergleicht Quelle und Ziel und überträgt nur die Teile, die sich geändert haben. Nach dem ersten Lauf sind Sicherungen dadurch extrem schnell — das unterscheidet rsync vom Einmal-Kopieren mit scp.

Grundform

rsync -avz quelle/ ziel/
rsync -avz /home/benutzer/www/ Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.:/backup/www/
rsync -avz Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.:/backup/www/ /home/benutzer/wiederherstellung/

Die erste Zeile synchronisiert lokal, die zweite hoch, die dritte herunter. Ohne SSH-Angabe (kein benutzer@host:) arbeitet rsync rein lokal.

Die Standard-Optionen

  • -a (Archive) — erhält Rechte, Zeiten, Links und mehr; entspricht -rlptgoD. Die Grundlage fast jedes rsync-Aufrufs.
  • -v — ausführliche Ausgabe; -z — komprimieren; -h — menschenlesbare Größen.
  • -n (Dry-Run) — zeigt ohne Änderungen, was passieren würde; immer vor --delete testen.
  • --delete — löscht am Ziel, was an der Quelle fehlt (exakte Spiegelung — Vorsicht!).
  • --progress — Fortschrittsanzeige; --stats — Zusammenfassung am Ende.
  • -e ssh bzw. -e 'ssh -p 2222' — Remote-Shell und SSH-Port festlegen (bei nicht standardmäßigen Ports).
  • --exclude='*.tmp' — bestimmte Muster auslassen; mehrfach angeben.

Schrägstrich-Falle

Ein abschließender Schrägstrich bei quelle/ bedeutet „der Inhalt des Ordners“, ohne Schrägstrich wird der Ordner selbst ins Ziel gelegt. Das ist die häufigste rsync-Falle und entscheidet, ob ziel die Dateien direkt oder in einem Unterordner erhält.

Inkrementelle Sicherungen mit --link-dest

rsync -av --link-dest=/backup/vortag/ /home/benutzer/www/ /backup/heute/

Mit --link-dest legt rsync unveränderte Dateien als Hardlinks auf eine frühere Sicherung — es entsteht eine vollständige Sicherung, die aber kaum zusätzlichen Speicher verbraucht. So baut man einfache tägliche Backup-Rotationen auf.

Verwandte Grundlagen: ssh, scp und rsync im Überblick, sftp-Befehle, SSH-Schlüssel.

scp-Befehle: Dateien sicher über SSH kopieren

scp (Secure Copy) kopiert Dateien zwischen zwei Rechnern über eine SSH-Verbindung — verschlüsselt und mit derselben Authentifizierung wie ssh. Der Einzeiler ist ideal für schnelle, einmalige Transfers; wer regelmäßig synchronisiert, nutzt besser rsync oder die interaktive sftp-Shell.

Grundform

scp datei.txt Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.:/home/benutzer/
scp Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.:/pfad/datei.txt .
scp -r ordner/ Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.:/ziel/

Die erste Zeile lädt eine Datei hoch, die zweite lädt sie herunter (das Ziel . ist das aktuelle lokale Verzeichnis). -r kopiert ganze Verzeichnisse rekursiv. Die Quell- und Zielangaben folgen dem Muster benutzer@host:/pfad; ohne Doppelpunkt ist die Angabe ein lokaler Pfad.

Wichtige Optionen

  • -P 2222 — großes P: SSH-Port des entfernten Rechners (Standard 22).
  • -p — kleines p: Zeitstempel (Modifikationszeit, Zugriffszeit) und Rechte erhalten.
  • -i ~/.ssh/id_ed25519 — bestimmten SSH-Schlüssel verwenden.
  • -C — Kompression aktivieren (sinnvoll bei langsamen Verbindungen).
  • -q — Fortschrittsanzeige und Warnungen unterdrücken.
  • -3 — Transfer zwischen zwei entfernten Rechnern über den lokalen Rechner umleiten.

Modernes scp: SFTP-Protokoll statt SCP

Seit OpenSSH 9.0 (2022) nutzt der scp-Client für die Übertragung standardmäßig das SFTP-Protokoll statt des alten SCP/RCP-Protokolls. Das alte Protokoll war anfällig für Fehlinterpretationen von Dateinamen mit Sonderzeichen. Nur wer das Legacy-Verhalten zwingend braucht, setzt -O ein — etwa bei sehr alten Servern ohne SFTP-Subsystem.

Fallen

  • -P vs. -p: Bei scp ist der Port ein großes -P, die Zeiterhaltung ein kleines -p — genau umgekehrt zur intuition der meisten Kommandos.
  • Wildcards wie * werden lokal von der Shell aufgelöst; entfernte Wildcards müssen gequotet werden: scp benutzer@host:'/pfad/*.log' .
  • Wer dieselben Dateien mehrfach überträgt oder spiegeln will, ist mit rsync besser beraten — es überträgt nur geänderte Teile.

Verwandte Grundlagen: ssh, scp und rsync im Überblick, SSH-Schlüssel, ssh-config.

sftp-Befehle: Dateien interaktiv über SSH übertragen

sftp (SSH File Transfer Protocol) ist ein interaktives Werkzeug zum Übertragen und Verwalten von Dateien über eine verschlüsselte SSH-Verbindung. Anders als beim Einzeiler scp startet sftp eine Shell, in der man mit Kommandos navigiert, hoch- und herunterlädt — ähnlich wie beim klassischen FTP, nur vollständig verschlüsselt über Port 22.

Verbindung herstellen

sftp Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
sftp -P 2222 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
sftp -i ~/.ssh/id_ed25519 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

Wie bei scp ist der Port ein großes -P, die Identitätsdatei wird mit -i gewählt. Nach dem Login erscheint die Eingabeaufforderung sftp>.

Die wichtigsten interaktiven Kommandos

  • ls, cd, pwd — entferntes Verzeichnis ansehen und wechseln.
  • lls, lcd, lpwd — dieselben Aktionen im lokalen Verzeichnis (Präfix l).
  • get datei — Datei vom Server herunterladen; get -r ordner rekursiv, get -a datei hängt eine unterbrochene Übertragung an.
  • put datei — Datei hochladen; put -r ordner rekursiv.
  • rm datei, mkdir ordner, rmdir ordner, chmod 600 datei, rename alt neu — Dateien entfernt verwalten.
  • ! — eine lokale Shell starten, bye oder exit beendet sftp.

Batch-Modus für Skripte

sftp -b uebung.txt Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

Mit -b datei liest sftp die Kommandos zeilenweise aus einer Batch-Datei statt interaktiv — praktisch für automatisierte Transfers. Bricht ein Kommando in der Batch-Datei mit einem Fehler ab, beendet sich sftp standardmäßig; das optionale -B puffer setzt nur die Puffergröße für die Übertragung und beeinflusst dieses Verhalten nicht. Für robuste Skripte sollte die Batch-Datei daher nur Kommandos enthalten, die mit Sicherheit gelingen, oder der Aufruf pro Datei erfolgen.

SFTP, FTPS und FTP

SFTP läuft als Subsystem über SSH (Port 22) und verschlüsselt alles. Davon zu unterscheiden sind das unverschlüsselte FTP und FTPS (FTP über TLS). Viele moderne scp-Aufrufe nutzen intern ohnehin das SFTP-Protokoll — siehe scp-Befehle.

Verwandte Grundlagen: ssh, scp und rsync im Überblick, rsync-Befehle, SSH-Schlüssel.

known_hosts: Die Datei für SSH-Host-Schlüssel einfach erklärt

~/.ssh/known_hosts (kurz known_hosts) speichert die Host-Schlüssel aller SSH-Server, mit denen sich der Client bereits verbunden hat. Beim ersten Kontakt merkt sich OpenSSH den Fingerabdruck; bei späteren Verbindungen vergleicht es ihn — weicht er ab, bricht die Verbindung mit HOST KEY VERIFICATION FAILED ab (Schutz vor Man-in-the-Middle-Angriffen).

Warum Host-Key-Prüfung?

Jeder SSH-Server besitzt einen eindeutigen Host-Schlüssel. Ohne Prüfung könnte ein Angreifer die Verbindung abfangen und sich als Server ausgeben. known_hosts macht den ersten Kontakt prüfbar: Der Client fragt bei unbekanntem Host nach (Fingerabdruck anzeigen und bestätigen).

Aufbau und Einträge

server.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

Pro Zeile stehen Hostname (oder IP), Schlüsseltyp und der öffentliche Schlüssel. Zusätzlich wird ein @cert-authority-Eintrag für von einer Zertifizierungsstelle signierte Schlüssel unterstützt. Die globale Variante /etc/ssh/ssh_known_hosts gilt für alle Benutzer.

Verwalten

  • ssh-keyscan server.example.com >> ~/.ssh/known_hosts — Host-Schlüssel automatisch eintragen.
  • ssh-keygen -R server.example.com — bekannten Eintrag entfernen (z.B. nach Neuinstallation des Servers).
  • StrictHostKeyChecking no in der ssh-config deaktiviert die Prüfung — nur für Testumgebungen, in Produktion ein Sicherheitsrisiko.

Sicherheit

Beim ersten Verbinden den angezeigten Fingerabdruck über einen vertrauenswürdigen Kanal verifizieren. ssh-keyscan sammelt die Schlüssel zwar automatisch, doch der erste Abruf selbst ist nicht gegen Manipulation geschützt — die erhaltenen Schlüssel sollten vor dem Vertrauen geprüft werden.

Verwandte Grundlagen: SSH, ssh-keygen, ssh-keyscan, authorized_keys und sshd.

ssh-keyscan: SSH-Host-Schlüssel automatisch sammeln einfach erklärt

ssh-keyscan sammelt die öffentlichen Host-Schlüssel eines SSH-Servers, ohne sich anzumelden — die Grundlage, um known_hosts automatisch zu befüllen. Es gehört zum OpenSSH-Paket und wird häufig in Skripten und Automatisierungen genutzt.

Grundbefehl

ssh-keyscan server.example.com

Der Befehl verbindet sich zum SSH-Port (Standard 22) und gibt die gefundenen Schlüssel im known_hosts-Format aus. Mehrere Hosts sind möglich: ssh-keyscan host1 host2. Mit -p 2222 lässt sich ein abweichender Port angeben.

Typische Verwendung

ssh-keyscan server.example.com >> ~/.ssh/known_hosts

So lässt sich die Host-Key-Abfrage beim ersten Verbinden überspringen — praktisch für Skripte, CI-Pipelines und die Einrichtung vieler Rechner. Mit -H werden Einträge gehasht gespeichert (Standard bei neueren OpenSSH-Versionen).

Sicherheit

  • TOFU-Problem: Beim allerersten Abruf kennt der Client den Server noch nicht — ein Angreifer könnte sich einschleichen. Die gesammelten Schlüssel daher über einen vertrauenswürdigen Kanal verifizieren, bevor man ihnen vertraut.
  • Mit StrictHostKeyChecking lässt sich steuern, wie der Client mit unbekannten oder geänderten Schlüsseln umgeht — in Produktion immer yes (bzw. accept-new nur für neue Einträge).
  • Alternativ zu known_hosts werden die authorized_keys des Servers gepflegt — dort stehen die Schlüssel der Benutzer, nicht die des Servers.

Verwandte Grundlagen: SSH, ssh-keygen, known_hosts und authorized_keys.

  1. authorized_keys: Die Datei für öffentliche SSH-Schlüssel einfach erklärt
  2. ssh-Bastion: Mit ProxyJump über den Sprungserver verbinden
  3. Teleport: Identity-Aware Access Proxy für SSH-Zugriffe
  4. sshd: Der OpenSSH-Server konfigurieren und absichern

Seite 1 von 45

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz