Wie kann ich mit dem SCP-Befehl in Linux sicher Dateien von einem entfernten Server auf meinen lokalen Rechner übertragen?
07:26, 10.10.2023
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!