Wie kann ich mit dem SCP-Befehl in Linux sicher Dateien von einem entfernten Server auf meinen lokalen Rechner übertragen?

Wie kann ich mit dem SCP-Befehl in Linux sicher Dateien von einem entfernten Server auf meinen lokalen Rechner übertragen?

10.10.2023
Autor: HostZealot Team
2 min.
284

Wenn Sie einen Server von einem PC aus verwalten, müssen Sie häufig Daten zwischen beiden Rechnern übertragen. Einerseits kann dies für Neueinsteiger eine gewisse Schwierigkeit darstellen, da man Dateien nicht einfach vom Server auf den PC ziehen kann. Andererseits gibt es dafür verschiedene Möglichkeiten, und wenn Sie eine davon beherrschen, werden Ihre Probleme in den meisten Fällen gelöst.

Heute wollen wir uns einem bestimmten Ansatz widmen, nämlich dem SCP-Befehl in Linux.

SCP-Befehle entschlüsseln: Ein umfassender Leitfaden

SCP steht für Secure Copy Protocol. Es handelt sich dabei um einen Befehl, der im Gegensatz zum einfacheren Befehl cp (copy) eine sichere Methode zum Kopieren von Dateien zwischen einem entfernten Server und einem lokalen Rechner über das SSH-Protokoll (Secure Shell) bietet. Damit können Sie nicht nur Informationen auf sichere Weise übertragen, sondern haben auch die Gewissheit, dass niemand sensible Daten abhören kann.

Entmystifizierung der SCP-Syntax

Wie bei vielen anderen Befehlen gibt es auch bei SCP nicht nur einen einzigen Befehl, um eine einzige Aktion durchzuführen. Stattdessen gibt es eine ganze Reihe von Befehlen in der SCP-Syntax, mit denen Sie verschiedene Operationen im Zusammenhang mit der Dateiübertragung durchführen können.

Die wesentliche Struktur der SCP-Syntax ist:

scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2

The “src_host” is the file or directory you wish to transfer, “dest_host” stands for where you want to transfer your content. Both elements can be either local or remote, that is, SCP supports bidirectional transfers.

“Options” stands for different permissions you can grant to your command. Among them:

  • P (groß) - wählen Sie den Port für die Verbindung mit dem Remote-Server.
  • p (klein) - fügt die Information über den Zeitpunkt hinzu, um das spätere Auffinden des Vorgangs zu erleichtern.
  • r - überträgt das gesamte angegebene Verzeichnis.
  • q - fügen Sie diese Option hinzu, wenn Sie keine Benachrichtigungen über den Abschluss des Übertragungsverfahrens erhalten möchten.
  • C - komprimiert die Informationen beim Kopieren.

Der SCP-Befehl ist in der Tat sehr vielseitig. Er kann nicht nur Dateien von Ihrem entfernten Rechner zu Ihrem lokalen Rechner senden, sondern auch umgekehrt oder zum Austausch von Dateien zwischen zwei entfernten Rechnern verwendet werden.

Bevor wir uns näher mit konkreten Fällen von SCP-Befehlsverwendung befassen, müssen wir zwei Bedingungen prüfen:

  • SSH muss auf jedem Gerät vorhanden sein.
  • Außerdem müssen Sie für jedes Gerät Root-Zugriff haben.

Wesentliche SCP-Befehle enthüllt

Verschieben von Dateien vom lokalen Host auf einen entfernten Server

Schauen wir uns zunächst an, wie man eine Datei oder ein Verzeichnis vom lokalen Rechner zum entfernten Server sendet. Anwenden:

scp /path/to/local/file username@remote_ip:/path/to/destination

“/path/to/local/file” steht für den Pfad für die zu übertragenden Dateien, "username" ist der Benutzername des Remote-Servers, "remote_ip" sollte die Adresse des Remote-Servers enthalten, "path/to/destination" ist der gewünschte Ort auf dem Remote-Server.

Tipp: Anstatt jedes Mal das gesamte Home-Verzeichnis einzugeben, können Sie auch einfach das Zeichen ~ (Tilda) als Ziel eingeben.

Außerdem kann derselbe Befehl zum Kopieren mehrerer Dateien verwendet werden. Sie können zum Beispiel alle Dateien aus demselben Verzeichnis kopieren, die eine gemeinsame Erweiterung haben. Geben Sie dazu *.[Dateierweiterung] anstelle der Datei an. Um z.B. alle .txt-Dateien zu kopieren, geben Sie *.txt ein.

scp /path/to/local/*.txt username@remote_ip:/path/to/destination

Sie können die Datei auch unter einem anderen Namen speichern, indem Sie den gewünschten Namen nach dem Zielort hinzufügen.

scp /path/to/local/painauchocolat.txt username@remote_ip:/path/to/destination/croissant.txt

Im obigen Beispiel wird die "painauchocolat.txt" als "croissant.txt" gespeichert.

Übertragen von Dateien von Remote zu Local

Der entsprechende Befehl zum Senden von Dateien von Ihrem entfernten Server an Ihren lokalen Rechner ist ähnlich aufgebaut:

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

Ersetzen Sie Benutzername, "remote_ip", "/Pfad/zu/remote/file" und "/Pfad/zu/local/destination" wie in den vorherigen Fällen.

Tipp: Wenn sich Ihre Dateien im Heimatverzeichnis befinden, müssen Sie den Pfad nicht angeben. Geben Sie einfach den Dateinamen ein und der Speicherort sowie das Ziel werden als Heimatverzeichnis festgelegt.

scp username@192.168.137.59:painauchocolat.txt

Mit diesem Befehl können Sie die Datei painauchocolat.txt aus dem Home-Verzeichnis Ihres Remote-Servers in das Home-Verzeichnis Ihres lokalen Computers senden.

Kopieren von Dateien zwischen entfernten Hosts

Ein Vorteil des SCP-Protokolls ist, dass es nicht nur das Kopieren von Dateien zwischen einem lokalen und einem entfernten Rechner ermöglicht, sondern auch den Austausch von Dateien zwischen zwei entfernten Servern. Verwenden Sie dazu die folgende Syntax:

scp username@remote_ip1:/path/to/source/file username@remote_ip2:/path/to/destination

Ersetzen Sie Benutzernamen, remote_ip1, remote_ip2, /pfad/zur/Quelle/Datei und /pfad/zum/Ziel entsprechend.

Beachten Sie, dass es sich nicht unbedingt um einen identischen Benutzer handeln muss. Sie können Dateien von einem Benutzerkonto an ein anderes senden, indem Sie die entsprechenden Benutzernamen eingeben.

Verwaltung mehrerer Dateiübertragungen

Sie können mit SCP auch Gruppen von Dateien und ganze Verzeichnisse übertragen. Für die Übertragung von Verzeichnissen müssen Sie das Flag -r an den SCP-Befehl anhängen:

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

Wenn Sie einzelne Dateien aus einem Verzeichnis kopieren wollen, geben Sie einfach mehrere Dateinamen im Quellpfad an. Zum Beispiel so:

scp /path/to/local/file1 file2 file3 file_andsoon username@remote_ip:/path/to/destination

Wichtige Schlussfolgerungen

Berechtigungen: Vergewissern Sie sich, dass Sie die notwendigen Berechtigungen für die Übertragung von Dateien haben. Dies muss die Leseberechtigung für Quelldateien und die Schreibberechtigung für das Endverzeichnis sein.

SSH: Da SSH an SCP beteiligt ist, benötigen Sie das entsprechende Passwort.

Dateien mit identischen Namen: Stellen Sie sicher, dass sich im Zielverzeichnis keine Dateien befinden, deren Namen mit denen der zu kopierenden Dateien identisch sind, es sei denn, Sie möchten, dass der SCP sie ersetzt, ohne Sie zu fragen.

Der Doppelpunkt: Vergessen Sie nicht, das Doppelpunkt-Zeichen (:) zwischen Quell- und Zielort zu schreiben.

Heimatrichtung: Wenn Sie Dateien in die oder aus der Heimatrichtung übertragen, können Sie die Angabe weglassen und gleich Dateinamen eingeben.

Abschließende Überlegungen

Die Übertragung von Dateien ist eine gängige Routine, die Sie wahrscheinlich irgendwann durchführen werden, wenn Sie mit entfernten Servern arbeiten. SCP ist eine gängige Methode, um dies zu tun, die ziemlich bequem und sicher zugleich ist. Wir hoffen, dass der obige Artikel die Syntax hinter diesen Funktionen erklärt hat und dass Sie keine Probleme bei der Übertragung Ihrer Dateien haben werden. Passen Sie auf sich auf! 

Verwandte Artikel