50 % Rabatt auf alle Pläne, begrenzte Zeit. Ab $2.48/mo
12 Min. verbleibend
Server & Betriebssysteme

SCP von Remote zu Local – Linux SCP-Befehle

Ada Lovegood By Ada Lovegood 12 Min. Lesezeit
scp von Remote zu Local

Wolltest du schon mal Dateien über ein Netzwerk übertragen und bist dabei auf Sicherheitsprobleme gestoßen? Du kannst deine Dateien nicht einfach ins Netzwerk werfen und darauf hoffen, dass sie sicher ankommen. Du brauchst geeignete Schutzmaßnahmen: ein Dateiübertragungsprotokoll, das deine Daten vor unbefugtem Zugriff, Netzwerksniffing, Datenlecks und anderen Bedrohungen schützt.

Das Secure Copy Protocol (SCP) ist ein leistungsfähiges Netzwerkprotokoll zur Dateiübertragung zwischen verschiedenen Rechnern in einem Netzwerk. In diesem Blogbeitrag schauen wir uns das Protokoll genauer an und erkunden die Möglichkeiten, SCP von Remote- auf lokale Maschinen einzusetzen.

Wie funktioniert SCP? 

SCP nutzt SSH (Secure Shell) für die Dateiübertragung. Was bedeutet das genau? SSH ist ein Netzwerkprotokoll für sicheren Fernzugriff auf Server. Es bietet Mechanismen zur Authentifizierung, Verschlüsselung und Integritätsprüfung der übertragenen Daten. SCP baut auf diesen Sicherheitsfunktionen und Verschlüsselungsverfahren von SSH auf, um Dateien sicher über ein Netzwerk zu übertragen. So können Sie SCP für sichere Verbindungen und Dateiübertragungen zwischen Remote- und Local-Servern verwenden und dabei sicher sein, dass Ihre Daten authentisch und vertraulich bleiben.

SCP für Dateiübertragungen: Warum und wie? 

SCP sowohl von Remote zu Local als auch von Local zu Remote ist eine effiziente und flexible Methode zur Dateiübertragung. SCP bietet gegenüber anderen Verfahren einige wesentliche Vorteile. So verfügt SCP beispielsweise über stärkere Sicherheitsmechanismen als andere Protokolle wie FTP. Ein weiterer Unterschied liegt in der Geschwindigkeit: SCP ist in der Regel deutlich schneller als Protokolle wie SFTP und eignet sich hervorragend für Dateiübertragungen zwischen Linux-Maschinen.

Mit SCP können Sie Dateien übertragen:

  • Von einem lokalen Rechner auf einen entfernten Rechner
  • Von einem entfernten Rechner auf einen lokalen Rechner
  • Von einem entfernten Rechner auf einen anderen entfernten Rechner.

Kommen wir nun zur praktischen Verwendung der Linux SCP-Syntax für Dateiübertragungen. Zunächst müssen Sie SSH auf beiden Rechnern einrichten. Zu beachten ist allerdings, dass SSH auf Linux-Maschinen in der Regel bereits vorinstalliert ist. In diesem Fall können Sie die folgenden Schritte überspringen.

1. Einrichten von SSH

Führen Sie den folgenden Befehl aus, um SSH zu installieren:

sudo apt install openssh-client

2. SSH-Schlüssel generieren

Das Client-Gerät muss anschließend eine SSH-Verbindung aufbauen. Für eine sichere Verbindung zwischen Client und Server werden ein privater und ein öffentlicher Schlüssel benötigt. Mit diesem Befehl erstellen Sie ein SSH-Schlüsselpaar:

ssh-keygen

Beim Ausführen dieses Befehls werden Sie wahrscheinlich nach einem Namen für das Schlüsselpaar und einer Passphrase gefragt (letztere ist optional). Sobald das Schlüsselpaar erstellt wurde, müssen Sie den öffentlichen Schlüssel auf den Server-Rechner kopieren.

Schauen wir uns nun die allgemeine Form des SCP-Befehls an:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [options] > Dieser erste Platzhalter kann durch verschiedene SCP-Optionen ersetzt werden, auf die wir später eingehen.
  • [source username@IP] > Dieser Platzhalter wird durch den Benutzernamen und die IP-Adresse des lokalen Rechners ersetzt. Beispiel: [email protected]
  • [Verzeichnis/Dateiname] > Dieser Platzhalter wird durch den Pfad der Datei ersetzt, die Sie übertragen möchten.
  • [Ziel-Benutzername@IP] > Dieser Platzhalter wird durch den Benutzernamen und die IP-Adresse des Zielrechners ersetzt.
  • [Verzeichnis] > Ersetzen Sie diesen Abschnitt durch den gewünschten Zielpfad auf dem Remote-Rechner.

Jetzt kennen Sie den grundlegenden Befehlsaufbau. Sehen wir uns alle nützlichen Optionen des SCP-Befehls an:

Option Anwendungsfall
-C
Mit dieser Option komprimiert SCP Ihre Dateien während der Übertragung.
-c <cipher>
Mit dieser Option legen Sie eine bestimmte Verschlüsselungsmethode fest. Beispiel: scp -c <aes128-ctr>.
-v
Diese Option zeigt den Übertragungsprozess Schritt für Schritt an.
-l <limit in kilobytes>
Mit dieser Option begrenzen Sie die maximale Bandbreite. Das folgende Beispiel setzt die Bandbreitennutzung auf 100 kb pro Sekunde: scp -l 100
-P
Mit dieser Option ändern Sie den SSH-Port des Remote-Servers, zu dem Sie eine Verbindung herstellen möchten. SCP verwendet standardmäßig Port 22.
-S <Programmname>
Mit dieser Option wählen Sie ein Programm für die Verbindung aus.
-r
Eine Datei oder ein Verzeichnis rekursiv kopieren.

Dateien mit SCP übertragen 

Sie erinnern sich: Es gibt drei Arten von Übertragungen mit SCP. Wir schauen uns jede davon einzeln an. Zur Veranschaulichung: Ich habe dieses Katzenfoto auf dem Desktop meines Linux-Computers. Im ersten Schritt übertrage ich es auf einen Linux-Remote-Server, dann zurück auf meinen lokalen Computer. Und zum Schluss wechselt das Foto direkt zwischen zwei Remote-Rechnern.

Übertragung eines Bildes mit scp

SCP von Lokal nach Remote 

Mit diesem Befehl übertragen Sie Ihre Datei vom lokalen Computer auf einen Remote-Server:

scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Um den scp-Befehl mit Passwort zu nutzen, geben Sie das Passwort Ihres Remote-Servers ein. Danach ist die Übertragung abgeschlossen.

Dateien mit SCP vom lokalen Rechner auf einen Remote-Server übertragen

SCP von Remote nach Lokal

Für den umgekehrten Vorgang benötigen Sie keinen Zugriff auf das Terminal Ihres Remote-Servers. Geben Sie auf dem Terminal Ihres lokalen Computers diesen Befehl ein:

scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]

Wie Sie sehen, haben wir lediglich die beiden Teile des Befehls vertauscht.

Dateien mit SCP vom Remote-Server auf den lokalen Rechner übertragen

SCP zwischen zwei entfernten Maschinen

Jetzt übertragen wir das Foto zwischen zwei Remote-Rechnern. Dafür benötigen Sie die Passwörter beider Rechner. Verwenden Sie diesen Befehl, um eine Datei zwischen zwei Remote-Computern zu übertragen:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Dateien mit scp zwischen zwei Remote-Systemen übertragen

Weitere nützliche SCP-Befehle

Die häufigsten SCP-Anwendungsfälle sind: Übertragung vom Remote-Server auf den lokalen Rechner, vom lokalen Rechner auf einen Remote-Server sowie zwischen zwei Remote-Hosts. Doch es gibt noch weitere nützliche Linux-scp-Beispiele.

1. Ein gesamtes Verzeichnis rekursiv kopieren

Stellen Sie sich vor, Sie möchten ein ganzes Verzeichnis mit allen enthaltenen Dateien übertragen. Das einzeln zu tun wäre sehr zeitaufwendig. Stattdessen können Sie den scp-Befehl nutzen, um ein Verzeichnis rekursiv zu kopieren:

scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]

Das ist in vielen Situationen hilfreich:

  • Code-Bereitstellung: Wenn Sie Code oder Webanwendungen deployen, müssen Sie häufig ein vollständiges Verzeichnis mit allen zugehörigen Komponenten wie Dateien und Skripten übertragen.
  • Backup und Synchronisierung: Wenn Sie ein gesamtes Verzeichnis sichern oder zwei Verzeichnisse auf dem lokalen Rechner und dem Remote-Server synchronisieren möchten, müssen Sie alles rekursiv kopieren.
  • Systemmigration: Bei der Systemmigration ist es entscheidend, alle wichtigen Daten vollständig zu übertragen. Mit der Option -r beim SCP-Befehl stellen Sie sicher, dass beim Umzug nichts verloren geht.

2. Bandbreitennutzung begrenzen

Wenn Sie die Übertragungsrate Ihrer Daten steuern möchten, können Sie folgenden Befehl verwenden:

scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Aber warum sollte man das tun?
In diesen beiden Szenarien können Sie die Linux scp-Syntax verwenden, um die Bandbreite zu begrenzen:

  • Netzwerküberlastung: Bei stark ausgelastetem Netzwerk hilft die Bandbreitenbegrenzung mit SCP dabei, die Netzwerkressourcen gleichmäßig zu verteilen. So können andere netzwerkabhängige Prozesse ohne Probleme weiter laufen. Das ist besonders wichtig bei Dateiübertragungen über ein gemeinsam genutztes Netzwerk, bei denen Ihr Prozess andere Nutzer beeinträchtigen könnte.
  • Hintergrundübertragungen: Bei SCP-Prozessen im Hintergrund, etwa automatisierten Backups oder Synchronisierungen, besteht die Gefahr, dass diese die gesamten Netzwerkressourcen beanspruchen. In solchen Fällen können Sie die Bandbreite für diese Übertragungen begrenzen, um die Ressourcen besser zu verwalten.

3. Detailliertes Protokoll anzeigen

Die Option -v bei SCP liefert ein detailliertes Protokoll mit zusätzlichen Informationen zum Übertragungsprozess. Mit dem folgenden Befehl erhalten Sie ausführliches Feedback:

scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Hier ist, warum Sie diesen Befehl kennen und nutzen sollten:

  • Fehlerbehebung: Diese Option zeigt Ihnen den Fortschritt der Übertragung in Echtzeit. Sie sehen Informationen wie Dateigröße und Abschlusspercentage. Außerdem werden Fehlermeldungen und Warnungen ausgegeben. Zusammen ermöglichen Ihnen diese Daten, den Übertragungsprozess bei Bedarf zu überwachen und Fehler zu beheben.

4. Einen SSH-Port angeben

Die Linux scp-Syntax mit der Option -P ermöglicht es Ihnen, den SSH-Port zu ändern. Hier ist der Befehl dafür:

scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Das kann in folgenden Fällen nützlich sein:

  • Firewall-Konfiguration: Wenn der Standard-SSH-Port gesperrt ist oder Sie den SSH-Dienst vor potenziellen Bedrohungen verbergen möchten, können Sie den SSH-Port ändern.

Gibt es Alternativen zu SCP?

SCP ist schnell und sicher. Mit der richtigen Linux scp-Syntax und etwas Wissen zur Fehlerbehebung kann es das einzige Tool sein, das Sie benötigen. Es schadet jedoch nicht, die Alternativen zu kennen.

1. rsync

rsync ist ein vielseitiges Dateiübertragungstool mit fortgeschrittenen Synchronisierungsfunktionen, inkrementellen Übertragungen sowie lokalen und Remote-Kopien. Es reduziert die Bandbreitennutzung, indem nur die Unterschiede zwischen Quell- und Zieldateien übertragen werden. Ein weiterer Vorteil von rsync: Unterbrochene Dateiübertragungen werden dort fortgesetzt, wo sie aufgehört haben.

rsync Vorteile

  • Effiziente Synchronisierung von Dateien und Verzeichnissen.
  • Unterstützt den Delta-Transfer-Algorithmus und reduziert so die zu übertragenden Daten.
  • Kann unterbrochene Übertragungen fortsetzen.

rsync Nachteile

  • rsync muss sowohl auf dem Quell- als auch auf dem Zielsystem installiert sein.
  • Erfordert mehr Einrichtungsaufwand und Befehlsoptionen als scp.

2. SFTP (SSH-Dateiübertragungsprotokoll)

SFTP bietet eine sichere Möglichkeit, Dateien über SSH zu übertragen. Die Funktionalität ähnelt FTP, läuft jedoch wie SCP über eine verschlüsselte SSH-Verbindung. In einigen Bereichen hat SFTP jedoch klare Vorteile gegenüber SCP. SCP kann zum Beispiel keine Verzeichnislisten anzeigen, keine Verzeichnisse erstellen oder löschen. SFTP hingegen beherrscht all diese Aufgaben.

SFTP Vorteile

  • Sichere Dateiübertragung mit Verschlüsselung.
  • Remoteverwaltung von Dateien.
  • Auf den meisten Linux- und Unix-Systemen verfügbar.

SFTP-Nachteile

  • Befehlssyntax und Verwendung unterscheiden sich von herkömmlichem FTP.
  • Auf bestimmten eingebetteten Systemen oder Geräten möglicherweise nur eingeschränkt unterstützt.

3. FTP (Dateiübertragungsprotokoll)

FTP ist ein weit verbreitetes Standardprotokoll für die Dateiübertragung. Es arbeitet nach dem Client-Server-Modell und bietet grundlegende Dateiübertragungsfunktionen.

FTP Vorteile

  • Breite Unterstützung auf verschiedenen Plattformen.
  • Bekannte Kommandozeilen- und grafische Clients sind verfügbar.

FTP Nachteile

  • Keine Verschlüsselung – weniger sicher als scp und sftp.
  • Möglicherweise sind zusätzliche Firewall-Konfigurationen erforderlich, um Verbindungen herzustellen.
  • Authentifizierung im Klartext.

Insgesamt ist scp eine einfache und zuverlässige Wahl für sichere Dateiübertragungen über SSH. Alternativen wie rsync, sftp und FTP können jedoch je nach Anforderungen zusätzliche Funktionen und mehr Flexibilität bieten.
Wie entscheiden Sie, welches Tool das richtige ist? Berücksichtigen Sie Faktoren wie Sicherheit, Synchronisierungsbedarf, Benutzerfreundlichkeit sowie die Kompatibilität mit Ihren Systemen und Protokollen. Wenn beispielsweise Sicherheit und Datenschutz bei Ihrer Dateiübertragung an erster Stelle stehen, ist FTP keine geeignete Wahl.

Fazit 

SCP ist ein schnelles und sicheres Tool für die Dateiübertragung zwischen Computern. Sie können scp verwenden, um Dateien von einem Remote-System lokal zu übertragen, von lokal auf ein Remote-System – und sogar direkt zwischen zwei Remote-Systemen. Obwohl es Alternativen wie rsync gibt, die ähnliches leisten, übertrifft SCP diese in vielen Bereichen, insbesondere in puncto Sicherheit und Geschwindigkeit. In diesem Blogbeitrag haben wir SCP, seine Anwendungsfälle und Alternativen vorgestellt und außerdem ein Cheat Sheet mit häufig verwendeten Befehlen bereitgestellt.

Häufig gestellte Fragen 

Welche Sicherheitsaspekte sollte ich beim Einsatz von SCP von Remote zu Local beachten?  

SCP ist ein sicheres Tool, und Sie müssen sich bei der Verwendung keine großen Sorgen um Sicherheitsrisiken machen. Dennoch empfiehlt es sich, alle zusätzlichen Sicherheitsmaßnahmen zu ergreifen, die Ihnen zur Verfügung stehen.

Welche häufigen Fehler treten bei der Verwendung von SCP Remote to Local auf? 

Beim Übertragen von Dateien von einem Remote-Server auf einen lokalen Rechner mit SCP können verschiedene häufige Fehler auftreten. Hier sind die zwei häufigsten Fehler bei der Verwendung von SCP remote zu lokal:

  1. No such file or directory: Dieser Fehler tritt auf, wenn die Portnummer falsch angegeben wurde, die Dateiberechtigungen nicht korrekt sind oder die Anmeldedaten falsch sind.
  2. Host Key Verification Failed: Diese Fehlermeldung erscheint, wenn sich der Host-Key infolge eines Server-Upgrades geändert hat. Der Host-Key bestätigt, dass Sie sich zuvor mit diesem Server verbunden haben. Schlägt die Überprüfung fehl, hat sich die Identität des Servers geändert. Dieser Fehler schützt Sie davor, sich mit einem gefälschten Server zu verbinden.

Wie übertrage ich Dateien mit SCP zwischen entfernten Systemen?

Um Dateien mit SCP erfolgreich zwischen zwei Systemen zu übertragen, müssen beide Computer über SSH erreichbar sein. Außerdem benötigen Sie die IP-Adresse und das Passwort der Remote-Systeme. Der Rest ist nur die Verwendung des richtigen SCP-Befehls:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Nach der Eingabe dieses Befehls werden Sie aufgefordert, das Passwort des Servers einzugeben. Danach wird Ihre Datei übertragen.

Teilen

Weitere Blog-Beiträge

Weiterlesen.

Beste selbst gehostete Apps, die du mit Cosmos Cloud betreiben kannst – Titelbild mit App-Panels rund um ein Cosmos-Dashboard.
Server & Betriebssysteme

Die besten selbst gehosteten Apps für Cosmos Cloud: Dateien, Medien, Passwörter, Automatisierung und mehr!

Maybe du hast Cosmos Cloud eingerichtet und möchtest wissen, welche Apps gut dazu passen - oder du hast dich noch gar nicht für Cosmos entschieden und willst nur sehen, wie gut es in deinen Workflow passt

Nick SilberNick Silber 16 Min. Lesezeit
Portainer vs Cosmos Cloud für die Verwaltung von Docker-Apps – Titelbild mit Hybrid-Setup-Diagramm und farbigen Blöcken für Ops und Zugriff.
Server & Betriebssysteme

Portainer vs Cosmos Cloud: Die bessere Wahl für Docker App-Management

Wenn du Docker bereits kennst und einfach den saubereren Weg suchst, einen wachsenden App-Stack zu betreiben, hier die kurze Antwort auf Portainer vs Cosmos Cloud: Portainer ist die stärkere Wahl für direkt

Nick SilberNick Silber 14 Min. Lesezeit
Cosmos Cloud vs CasaOS vs Umbrel – Feature-Grafik mit drei Self-Hosting-Wegen innerhalb eines abstrakten Cloud-Netzwerks.
Server & Betriebssysteme

Cosmos Cloud vs CasaOS vs Umbrel: Welche Self-Hosted-Plattform passt zu deinem Setup?

Die kurze Antwort: CasaOS ist nach wie vor der einfachste Einstieg, Umbrel bietet die übersichtlichste kuratierte Oberfläche, und Cosmos Cloud macht mehr Sinn, sobald du mehr Kontrolle über Domain

Nick SilberNick Silber 11 Min. Lesezeit

Bereit zum Deployen? Ab 2,48 $/Monat.

Unabhängige Cloud seit 2008. AMD EPYC, NVMe, 40 Gbps. 14 Tage Geld-zurück-Garantie.