Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Sicherheit

Dateien via SSH kopieren: Vollständiger Leitfaden zu SCP, rsync und SFTP

SSH (Secure Shell) ist das Rückgrat der sicheren Remote-Serververwaltung. Egal, ob Sie ein Entwickler sind, der Code bereitstellt, ein Sysadmin, der Infrastruktur verwaltet, oder ein Power-User, der eine VPS Hosting-Umgebung pflegt – das sichere Übertragen von Dateien zwischen Maschinen ist eine Aufgabe, die Sie ständig ausführen werden.

Dieser umfassende Leitfaden behandelt alle wichtigsten Methoden zum Kopieren von Dateien über SSH – einschließlich SCP, rsync, SFTP und schlüsselbasierter Automatisierung – mit realer Syntax, praktischen Beispielen und Expertentipps, um Ihnen zu helfen, schneller und sicherer zu arbeiten.

Warum SSH für Dateiübertragungen verwenden?

disruptive

Bevor wir uns den Tools zuwenden, lohnt es sich zu verstehen, warum SSH-basierte Dateiübertragung der Industriestandard für Serveradministratoren und Entwickler ist.

  • End-to-End-Verschlüsselung: Jedes Byte von Daten — einschließlich Anmeldedaten, Befehle und Dateiinhalte — wird während der Übertragung mit modernen kryptografischen Algorithmen verschlüsselt. Dies macht SSH-Übertragungen immun gegen Packet Sniffing und Man-in-the-Middle-Angriffe.
  • Keine zusätzliche Software erforderlich: SSH ist auf praktisch jedem Linux/Unix-System vorinstalliert und ist nativ auf Windows 10+ und macOS verfügbar.
  • Vielseitigkeit: Eine einzelne SSH-Verbindung kann interaktive Shell-Sitzungen, Dateiübertragungen, Port-Weiterleitung und automatisierte Skripte verarbeiten.
  • Automatisierungsfreundlich: SSH integriert sich nahtlos mit Cron-Jobs, CI/CD-Pipelines und Backup-Skripten und ermöglicht vollständig automatisierte, passwortlose Dateiübertragungen.
  • Zuverlässigkeit: SSH-Verbindungen handhaben Netzwerkunterbrechungen elegant, besonders wenn sie mit Tools wie rsync kombiniert werden.

Methode 1: Dateien mit SCP (Secure Copy Protocol) kopieren

disruptive

SCP ist das einfachste und am weitesten verbreitete Tool für einmalige Dateiübertragungen über SSH. Es funktioniert, indem es Ihre bestehende SSH-Verbindung nutzt, um Dateien sicher zwischen Hosts zu kopieren.

1) Grundlegende SCP-Syntax

scp [options] [source] [destination]

2) Eine Datei vom lokalen Computer auf den Remote-Server hochladen

scp /path/to/local/file username@remote_host:/path/to/remote/destination

Erklärung:

/path/to/local/filedie Datei, die Sie auf Ihrem lokalen Computer übertragen möchten
username@remote_hostIhr SSH-Benutzername und der Hostname oder die IP-Adresse des Servers
/path/to/remote/destinationdas Zielverzeichnis oder der Dateipfad auf dem Remote-Server

3) Eine Datei vom Remote-Server auf den lokalen Computer herunterladen

scp username@remote_host:/path/to/remote/file /path/to/local/destination

Kehren Sie einfach Quelle und Ziel um, um eine Datei vom Server auf Ihren lokalen Computer zu ziehen.

4) Ein ganzes Verzeichnis rekursiv kopieren

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

Das Flag -r weist SCP an, das Verzeichnis und seinen gesamten Inhalt rekursiv zu kopieren, einschließlich verschachtelter Unterverzeichnisse.

5) Nützliche SCP-Optionen

OptionBeschreibung
-P [port]Geben Sie einen benutzerdefinierten SSH-Port an (beachten Sie: Großbuchstabe -P, anders als SSH’s Kleinbuchstabe -p)
-CAktivieren Sie Komprimierung für schnellere Übertragungen über langsame Verbindungen
-i [identity_file]Verwenden Sie einen bestimmten SSH-Privatschlüssel zur Authentifizierung
-l [limit]Begrenzen Sie die Bandbreitennutzung in Kbit/s
-qStiller Modus — unterdrückt die Fortschrittsausgabe
-vAusführlicher Modus — nützlich zum Debuggen von Verbindungsproblemen

6) Wann SCP verwendet werden sollte

SCP ist ideal für schnelle, einmalige Dateiübertragungen, bei denen Einfachheit wichtig ist. Es erfordert keine Konfiguration und funktioniert sofort auf jedem System mit installiertem SSH. Für große Verzeichnisse oder wiederholte Übertragungen ist jedoch rsync eine deutlich bessere Wahl.

Methode 2: Dateien mit rsync kopieren

disruptive

rsync ist die professionelle Wahl für Dateisynchronisierung und -übertragung über SSH. Seine Killer-Funktion ist Delta-Übertragung: Anstatt ganze Dateien zu kopieren, analysiert rsync die Quelle und das Ziel und überträgt nur die geänderten Teile. Dies spart enorme Mengen an Zeit und Bandbreite beim Umgang mit großen Dateien oder Verzeichnissen, die häufig aktualisiert werden.

1) Grundlegende rsync-Syntax

rsync [options] [source] [destination]

2) Eine Datei vom lokalen Computer auf den Remote-Server hochladen

rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination

3) Ein ganzes Verzeichnis mit einem Remote-Server synchronisieren

rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Wichtig: Beachten Sie den nachgestellten Schrägstrich / nach dem Quellverzeichnis. Mit einem nachgestellten Schrägstrich kopiert rsync den Inhalt des Verzeichnisses. Ohne ihn kopiert rsync das Verzeichnis selbst als Unterverzeichnis des Ziels.

4) Ein Verzeichnis spiegeln (Dateien löschen, die aus der Quelle entfernt wurden)

rsync -avz --delete /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Das Flag –delete stellt sicher, dass Dateien, die aus der Quelle gelöscht wurden, auch vom Ziel entfernt werden, um beide Standorte perfekt synchron zu halten.

5) Einen benutzerdefinierten SSH-Port verwenden

rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

6) Nützliche rsync-Optionen

OptionBeschreibung
-aArchivmodus: behält Berechtigungen, Zeitstempel, symbolische Links und Eigentümerschaft bei
-vAusführlich: zeigt den Fortschritt Datei für Datei während der Übertragung an
-zKomprimierung: reduziert die über das Netzwerk übertragenen Daten
–deleteLöscht Dateien am Ziel, die nicht mehr in der Quelle vorhanden sind
–progressZeigt Echtzeit-Fortschritt für jede Datei
–excludeBestimmte Dateien oder Muster ausschließen (z. B. –exclude ‘*.log’)
-n oder –dry-runSimuliert die Übertragung, ohne tatsächlich etwas zu kopieren
-e “ssh -p [port]”Einen benutzerdefinierten SSH-Port angeben
–bwlimit=[KB/s]Übertragungsgeschwindigkeit drosseln, um Ihre Verbindung nicht zu überlasten

7) Wann rsync verwendet werden sollte

Verwenden Sie rsync für Sicherungen, Bereitstellungen und alle wiederkehrenden Synchronisierungsaufgaben. Es ist besonders leistungsstark bei der Verwaltung großer Codebasen, Medienbibliotheken oder Datenbankexporte auf einem Dedicated Server, wo Bandbreiteneffizienz und Datenintegrität kritisch sind.

Methode 3: Dateien zwischen zwei Remote-Servern kopieren

disruptive

Eine weniger bekannte, aber äußerst nützliche Funktion von SCP und rsync ist die Möglichkeit, Dateien direkt zwischen zwei Remote-Servern zu übertragen — ohne die Daten über Ihren lokalen Computer zu leiten. Dies ist unbezahlbar bei der Migration von Servern oder der Synchronisierung von Daten zwischen Cloud-Instanzen.

1) Dateien zwischen zwei Remote-Servern mit SCP kopieren

scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

2) Dateien zwischen zwei Remote-Servern mit rsync kopieren

rsync -avz username1@remote_host1:/path/to/source/ username2@remote_host2:/path/to/destination/

Hinweis: Damit Server-zu-Server-Übertragungen funktionieren, muss der Quellserver eine SSH-Verbindung zum Zielserver herstellen können. Möglicherweise müssen Sie SSH-Schlüssel auf dem Quellserver konfigurieren oder SSH-Agent-Forwarding (ssh -A) verwenden.

3) Server-zu-Server-Übertragung über SSH-Tunneling (Alternative Methode)

Wenn direkte Server-zu-Server-SSH aufgrund von Firewall-Einschränkungen nicht möglich ist, können Sie die Übertragung mit tar und ssh über Ihren lokalen Computer leiten:

ssh username1@remote_host1 "tar czf - /path/to/source" | ssh username2@remote_host2 "tar xzf - -C /path/to/destination"

Dies streamt ein komprimiertes Archiv von Server 1 direkt in Server 2 über Ihre lokale Terminal-Sitzung.

Methode 4: Dateien mit SFTP (SSH File Transfer Protocol) kopieren

disruptive

SFTP bietet eine interaktive, FTP-ähnliche Erfahrung über eine verschlüsselte SSH-Verbindung. Im Gegensatz zu SCP, das ein Single-Command-Tool ist, öffnet SFTP eine persistente Sitzung, in der Sie interaktiv Verzeichnisse durchsuchen, Dateien hochladen, herunterladen, umbenennen und löschen können.

1) Starten einer SFTP-Sitzung

sftp username@remote_host

Sie werden zu einer SFTP-Eingabeaufforderung (sftp>) weitergeleitet, von der aus Sie die folgenden Befehle ausführen können:

2) Wesentliche SFTP-Befehle

BefehlBeschreibung
lsDateien im aktuellen Remote-Verzeichnis auflisten
llsDateien im aktuellen lokalen Verzeichnis auflisten
cd /remote/pathRemote-Verzeichnis wechseln
lcd /local/pathLokales Verzeichnis wechseln
put /local/file /remote/destinationDatei auf den Remote-Server hochladen
get /remote/file /local/destinationDatei vom Remote-Server herunterladen
mput *.txtMehrere Dateien mit einem Muster hochladen
mget *.logMehrere Dateien mit einem Muster herunterladen
mkdir /remote/newdirVerzeichnis auf dem Remote-Server erstellen
rm /remote/fileDatei auf dem Remote-Server löschen
exit oder quitSFTP-Sitzung beenden

3) Verbindung zu einem benutzerdefinierten SSH-Port über SFTP

sftp -P 2222 username@remote_host

4) Wann SFTP verwendet werden sollte

SFTP eignet sich am besten für interaktive Dateiverwaltungssitzungen — beispielsweise wenn Sie eine Remote-Verzeichnisstruktur durchsuchen, selektiv Protokolldateien herunterladen oder Konfigurationsdateien auf einen Webserver hochladen müssen. Viele GUI-Clients (wie FileZilla, Cyberduck und WinSCP) verwenden SFTP als zugrunde liegendes Protokoll, was es auch für nicht-technische Benutzer zugänglich macht.

Methode 5: Automatisierung von Dateiübertragungen mit SSH-Schlüssel-Authentifizierung

disruptive

Das manuelle Eingeben eines Passworts für jede Dateiübertragung ist ineffizient und nicht mit Automatisierung kompatibel. SSH-schlüsselbasierte Authentifizierung löst dieses Problem durch passwortlose, kryptographisch sichere Anmeldungen — eine Voraussetzung für jeden automatisierten Backup- oder Deployment-Workflow.

1) Generieren Sie ein SSH-Schlüsselpaar

Führen Sie auf Ihrem lokalen Computer aus:

ssh-keygen -t ed25519 -C "your_email@example.com"

Hinweis: ed25519 ist der moderne, empfohlene Algorithmus. Verwenden Sie -t rsa -b 4096, wenn Sie Kompatibilität mit älteren Systemen benötigen.

Folgen Sie den Eingabeaufforderungen, um den Schlüssel zu speichern (Standardort: ~/.ssh/id_ed25519) und legen Sie optional eine Passphrase für zusätzliche Sicherheit fest.

2) Kopieren Sie Ihren öffentlichen Schlüssel auf den Remote-Server

ssh-copy-id username@remote_host

Dies fügt Ihren öffentlichen Schlüssel zur Datei ~/.ssh/authorized_keys auf dem Remote-Server hinzu. Sie werden ein letztes Mal zur Eingabe Ihres Passworts aufgefordert.

Wenn ssh-copy-id nicht verfügbar ist, können Sie dies manuell durchführen:

cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3) Testen Sie die passwortlose Authentifizierung

ssh username@remote_host

Wenn Sie sich verbinden, ohne zur Eingabe eines Passworts aufgefordert zu werden, funktioniert die schlüsselbasierte Authentifizierung korrekt.

4) Automatisieren Sie Übertragungen mit einem Shell-Skript

Mit konfigurierter passwortloser SSH können Sie Dateiübertragungen jetzt in Cron-Jobs oder Skripten automatisieren:

#!/bin/bash
# Daily backup script
rsync -avz --delete /var/www/html/ username@backup_server:/backups/www/

Fügen Sie dies zu Ihrer Crontab (crontab -e) hinzu, um es nächtlich auszuführen:

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Fehlerbehebung bei häufigen SSH-Dateiübertragungsproblemen

disruptive

Auch erfahrene Administratoren stoßen auf Probleme. Hier sind die häufigsten Probleme und ihre Lösungen:

Berechtigung verweigert (publickey)

  • Überprüfen Sie, dass der öffentliche Schlüssel korrekt zu ~/.ssh/authorized_keys auf dem Remote-Server hinzugefügt wurde
  • Überprüfen Sie, dass ~/.ssh die Berechtigungen 700 und authorized_keys die Berechtigungen 600 hat
  • Bestätigen Sie, dass der SSH-Daemon die Schlüsselauthentifizierung zulässt (PubkeyAuthentication yes in /etc/ssh/sshd_config)

Verbindung abgelehnt

  • Überprüfen Sie, dass der SSH-Dienst läuft: systemctl status sshd
  • Überprüfen Sie, dass der richtige Port verwendet wird
  • Überprüfen Sie die Firewall-Regeln: ufw status oder iptables -L

Übertragungsgeschwindigkeit ist langsam

  • Aktivieren Sie Komprimierung: fügen Sie -C zu SCP oder -z zu rsync hinzu
  • Verwenden Sie eine schnellere Verschlüsselung: ssh -c aes128-ctr (weniger sicher, aber schneller bei Links mit hoher Latenz)
  • Verwenden Sie für große Übertragungen rsync mit –bwlimit, um eine Überlastung Ihres Netzwerks zu vermeiden

Host-Schlüsselüberprüfung fehlgeschlagen

  • Der SSH-Fingerabdruck des Remote-Servers hat sich geändert (könnte auf ein Sicherheitsproblem oder einen Server-Neuaufbau hindeuten)
  • Entfernen Sie den alten Schlüssel: ssh-keygen -R remote_host
  • Verbinden Sie sich erneut und überprüfen Sie den neuen Fingerabdruck, bevor Sie ihn akzeptieren

Wahl des richtigen Tools: SCP vs. rsync vs. SFTP

disruptive

FunktionSCPrsyncSFTP
Benutzerfreundlichkeit⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Delta-Übertragungen
Verzeichnissynchronisierung✅ (rekursiv)✅ (mit –delete)✅ (manuell)
Interaktiver Modus
Automatisierung✅ (mit Skripten)
BandbreiteneffizienzNiedrigHochNiedrig
Am besten geeignet fürSchnelle einmalige ÜbertragungenSicherungen & SynchronisierungInteraktives Durchsuchen

Securing Your SSH File Transfers: Best Practices

disruptive

Unabhängig davon, welches Tool Sie verwenden, befolgen Sie diese Best Practices für die Sicherheit, um Ihre Server und Daten zu schützen:

  1. Deaktivieren Sie die Passwortauthentifizierung — Verwenden Sie ausschließlich SSH-Schlüssel und setzen Sie PasswordAuthentication no in /etc/ssh/sshd_config
  2. Ändern Sie den Standard-SSH-Port — Das Verlassen von Port 22 reduziert automatisierte Brute-Force-Versuche drastisch
  3. Verwenden Sie fail2ban — Sperren Sie automatisch IPs, die wiederholt die Authentifizierung fehlschlagen
  4. Beschränken Sie SSH-Zugriff nach IP — Verwenden Sie Firewall-Regeln oder AllowUsers-Direktiven, um zu begrenzen, wer sich verbinden kann
  5. Halten Sie SSH aktuell — Aktualisieren Sie OpenSSH regelmäßig, um bekannte Sicherheitslücken zu beheben
  6. Verwenden Sie starke Schlüsselalgorithmen — Bevorzugen Sie ed25519 oder rsa-4096 gegenüber älteren, schwächeren Algorithmen
  7. Sichern Sie Ihre Webanwendungen — Kombinieren Sie SSH-Sicherheit mit einem SSL-Zertifikat, um den gesamten Datenverkehr zu Ihren Webdiensten zu verschlüsseln

Häufig gestellte Fragen

disruptive

1) Was ist der Unterschied zwischen SCP und SFTP?

SCP ist ein nicht-interaktives Befehlszeilentool, das für schnelle, einzelne Dateiübertragungen entwickelt wurde. SFTP ist ein interaktives Protokoll, das es Ihnen ermöglicht, Dateien in einer sitzungsbasierten Schnittstelle zu durchsuchen, zu verwalten, hochzuladen und herunterzuladen. Beide verwenden SSH zur Verschlüsselung.

2) Kann ich rsync ohne SSH verwenden?

Ja — rsync hat seinen eigenen Daemon-Modus, der ohne SSH funktioniert, ist aber weniger sicher. Für jede internetgestützte Übertragung verwenden Sie immer rsync über SSH (rsync -e ssh).

3) Wie übertrage ich Dateien, wenn mein Server einen nicht standardmäßigen SSH-Port verwendet?

Verwenden Sie das -P Flag mit SCP (scp -P 2222) oder die -e “ssh -p 2222” Option mit rsync. Für SFTP verwenden Sie sftp -P 2222.

4) Ist SCP veraltet?

OpenSSH-Entwickler haben festgestellt, dass das zugrunde liegende Protokoll von SCP Einschränkungen hat, und empfehlen die Verwendung von SFTP oder rsync für neue Workflows. SCP bleibt jedoch auf praktisch allen Systemen weit verbreitet und funktionsfähig.

Fazit

disruptive

Die Beherrschung von SSH-basierten Dateiübertragungen ist eine wesentliche Fähigkeit für jeden, der Server verwaltet, Anwendungen bereitstellt oder Remote-Infrastruktur wartet. Jedes Tool hat seinen Platz:

  • SCP ist deine erste Wahl für schnelle, einfache, einmalige Übertragungen
  • rsync ist unverzichtbar für Backups, Bereitstellungen und effiziente Synchronisierung großer Datenmengen
  • SFTP glänzt in interaktiven Sitzungen, in denen du Dateien spontan durchsuchen und verwalten musst

Die Kombination dieser Tools mit SSH-Schlüssel-Authentifizierung und soliden Sicherheitspraktiken bietet dir einen robusten, automatisierten und sicheren Dateiübertragungsworkflow, der von einem einzelnen Shared Web Hosting-Konto bis hin zu komplexen Multi-Server-Architekturen auf Dedicated Servers skaliert.

Wenn du nach einer zuverlässigen, hochperformanten Hosting-Umgebung suchst, um diese Fähigkeiten in die Praxis umzusetzen, erkunde AlexHost’s VPS Hosting-Pläne — entwickelt für Entwickler und Systemadministratoren, die vollständigen Root-Zugriff, SSD-Speicher und Enterprise-Grade-Netzwerkkonnektivität fordern.