Computer Linux

So verwenden Sie den scp-Befehl zum sicheren Übertragen von Dateien unter Linux

how to use scp command in linux

Angenommen, Sie möchten einige Dateien zwischen Servern auf einem Linux-System übertragen. Es gibt viele Möglichkeiten, wie Sie diese Aufgabe erledigen können, aber wenn Ihre Priorität darin besteht, Dateien sicher zu übertragen, bleiben Ihnen nur wenige Optionen. Die einfachste Lösung besteht darin, den Befehl scp oder Secure Copy zu verwenden, um Ihre Dateien zu übertragen, ohne sich Gedanken über die Sicherheit machen zu müssen. In diesem Artikel erklären wir, wie Sie Übertragungsdateien sicher mit dem scp-Befehl auf Ihrem Linux-System verwenden.

Dateien mit dem scp-Befehl unter Linux übertragen (2023)

Was ist der scp-Befehl unter Linux

Wenn es darum geht, Dateien über ein sicheres Netzwerk zu übertragen, kann der Befehl scp sehr nützlich sein. Es steht für Secure Copy Protocol und überträgt Dateien und Verzeichnisse zwischen zwei Systemen über eine SSH-Verbindung (Secure Shell). Mit ssh können Sie sich der Sicherheit Ihrer Dateien sicher sein, da diese standardmäßig verschlüsselt sind. Einfacher ausgedrückt ist der scp-Befehl eine sicherere Version des cp-Befehls, über den Sie alles in unserem Artikel zu Linux-Terminalbefehlen lesen können.

Verwendung des scp-Befehls: Syntax & Optionen

Bevor wir Dateien über scp übertragen können, sehen wir uns hier die Syntax und Optionen des Befehls an:

scp <option> <host_user_name@host_ip_address:path/to/source/file> <target_user_name@target_ip_address:target/path>

Verständnis der Syntax:

  • Erste, <host_user_name@host_ip_address:path/to/source/file> gibt das ‘Quell’-System an, von dem aus Sie Ihre Dateien/Verzeichnisse übertragen müssen.
  • Zweite, <target_user_name@target_ip_address:target/path> gibt das ‘Ziel’-System an, auf das Sie Ihre Dateien/Verzeichnisse übertragen möchten.

Wenn Sie einen der oben genannten Parameter belassen, sucht der scp-Befehl in Linux zuerst nach der Datei und kopiert die Datei dann lokal. Einige der Optionen zum Koppeln mit dem Befehl sind:

Optionen Ziel
-P Gibt an, welcher Port mit dem Hostsystem verbunden werden soll. Wenn weggelassen, wird standardmäßig Port 22 verwendet.
-p Behält Änderungszeiten, Zugriffszeiten und Modi der Originaldatei beim Kopieren auf das Zielsystem bei.
-r Kopiert rekursiv das gesamte Verzeichnis auf das Zielsystem.
-J Wird verwendet, um das Quellsystem und das Zielsystem über ein Proxy-System (Jump-Host) zu verbinden.
-3 Wenn dieses Flag verwendet wird, kopiert es die Dateien sowohl auf das Zielsystem als auch auf das lokale System
-4 zwingt den scp-Befehl, nur IPv4-Adressen zu verwenden.
-6 zwingt den scp-Befehl, nur IPv6-Adressen zu verwenden.

So kopieren Sie Dateien mit dem scp-Befehl

Bevor Sie den scp-Befehl unter Linux verwenden, müssen Sie einige Voraussetzungen sowohl auf dem Host- als auch auf dem Zielsystem erfüllen:

  • ssh sollte installiert sein
  • Root-Zugriff oder jeder Benutzer mit sudo-Berechtigungen

Dateien vom lokalen Host auf das entfernte Ziel kopieren

Wenn Sie eine Datei von Ihrem lokalen System auf ein Remote-Ziel übertragen müssen, müssen Sie die folgende Syntax verwenden:

scp <options> <path_to_local_file> <remote_user>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

Wenn die obige Syntax kompliziert erscheint, wird sie durch ein Beispiel geklärt:

scp test.txt remote2@139.144.11.105:/home/remote2/Documents/

Im obigen Beispiel:

  • test.txt ist der Name der zu übertragenden Datei und befindet sich im aktuellen Verzeichnis des lokalen Systems.
  • test ist der Benutzername auf dem Zielsystem.
  • 139.144.11.105 ist die IP-Adresse des Zielsystems.
  • /home/remote2/Documents/ ist der Ort auf dem Zielsystem, an dem die übertragene Datei gespeichert wird.
Übertragen einer Datei vom lokalen System zum Remote-Empfänger - scp-Befehl linux

Kopieren Sie Dateien vom Remote-Host auf das lokale Ziel

Wenn Sie eine Datei von einem Remote-Host auf Ihren lokalen Computer übertragen müssen, verwenden Sie die folgende scp-Befehlssyntax auf Ihrem Linux-System:

scp <options> <remote_user>@<remote_host_ip_address>:<path_of_file_to_transfer> <path_to_store_file>

Angenommen, Sie müssen eine Datei namens test.py von dem Remote-Server übertragen, an dem Sie arbeiten, verwenden Sie diesen Befehl:

scp test@10.10.11.113:/home/test/test1.py ~/test1.py

In diesem Beispiel:

  • test ist der Benutzername des Remote-Hosts.
  • 10.10.11.113 ist die IP-Adresse des Remote-Hosts.
  • /home/test/test1.py ist der Pfad der Datei, die vom entfernten Host übertragen werden soll.
  • ~/test1.py ist der Name der Datei, nachdem sie auf den lokalen Computer übertragen und im Home-Verzeichnis gespeichert wurde.
Senden einer Datei vom Remote-Server an das lokale System - scp-Befehl linux

Übertragen Sie Dateien von einem Remote-Host auf ein anderes Remote-Ziel

Mit dem scp-Befehl können Sie nicht nur Dateien zwischen Ihrem lokalen System und einem Remote-Rechner übertragen, sondern auch Dateien zwischen zwei entfernten Systemen übertragen. Bevor Sie jedoch Dateien von einem Remote-System auf ein anderes Remote-System übertragen können, wird empfohlen, einen privaten SSH-Schlüssel und einen öffentlichen SSH-Schlüssel auf dem Quellsystem zu generieren und eine Kopie des öffentlichen Schlüssels auf dem Zielsystem zu speichern.

Im Allgemeinen beschweren sich Benutzer über den Fehler „Hostschlüsselüberprüfung fehlgeschlagen“, wenn Dateien zwischen zwei Remotesystemen übertragen werden. Um den Fehler zu umgehen, verwenden Sie als zusätzliche Maßnahme einen ssh-Schlüssel. Wie das geht, haben wir hier erklärt:

1. Generieren Sie mit diesem Befehl ein öffentliches/privates Schlüsselpaar auf dem Quellserver:

ssh-keygen -t <encryption_algorithm>

2. Für Verschlüsselungsalgorithmen können Sie „rsa“, der am häufigsten verwendete Algorithmus, oder ein anderer Algorithmus Ihrer Wahl.

3. Anschließend werden Sie aufgefordert, den Speicherort für den SSH-Schlüssel auszuwählen. Sie können es entweder an einem beliebigen Ort Ihrer Wahl oder am Standardort speichern.

4. Für die Passphrase können Sie alles Ihrer Wahl eingeben oder es leer lassen, indem Sie die Eingabetaste drücken.

Generieren des SSH-Schlüssels und Senden einer Kopie an das Empfängersystem

5. Kopieren Sie dann den öffentlichen Schlüssel mit dem folgenden Befehl auf den Zielserver. Damit können Sie sich sogar ohne Passwort per ssh am Zielsystem anmelden.

ssh-copy-id <destination_username>@<destination_ip_address>

Notiz: Die passwortlose Anmeldemethode funktioniert nur für den Benutzer, für den Sie den SSH-Schlüssel generiert haben.

6. Nachdem Sie den ssh-Schlüssel auf dem Remote-Server erstellt und gespeichert haben, verwenden Sie diese scp-Befehlssyntax, um Dateien zwischen zwei Remote-Systemen auszutauschen, auf denen Linux ausgeführt wird:

scp <options> <remote_user_1>@<remote_host_ip_address>:<path_of_file_to_transfer> <remote_user_2>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

Datei zwischen zwei entfernten Systemen übertragen - Befehl scp linux

Angenommen, Sie müssen eine Datei namens test.txt von einem Remote-Host auf einen anderen Remote-Empfänger übertragen. Verwenden Sie den Befehl:

scp remote1@10.10.11.113:/home/test1/test.txt remote2@10.11.27.111:/home/remote2/Documents/test1.txt

In diesem Beispiel:

  • remote1 ist der Name des Benutzers auf dem Remote-Sender-Host
  • 10.10.11.113 ist die IP-Adresse des Remote-Sender-Hosts
  • /home/test1/test.txt ist der Pfad zu der zu sendenden Datei
  • remote2 ist der Name des Benutzers im fernen Empfängerziel
  • 10.11.27.111 ist die IP-Adresse des entfernten Empfängerziels
  • /home/remote2/Documents/test1.txt ist der zu speichernde Name und Pfad für die zu empfangende Datei.

Übertragen Sie mehrere Dateien mit dem scp-Befehl

Das Übertragen mehrerer Dateien nacheinander kann für jeden eine mühsame Aufgabe sein. Stattdessen können Sie die folgende Syntax verwenden, um Dateien mit dem scp-Befehl unter Linux auszutauschen:

scp <path_to_file_1> <path_to_file_2> <remote_receiver>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

Zum Beispiel – Angenommen, Sie müssen vier Dateien, einschließlich test1.txt, test2.py, test3.sh und test4.c, an einen entfernten Empfänger senden, können Sie den folgenden Befehl verwenden:

scp -P 22 test1.txt test2.py test3.sh test4.c remote1@10.10.11.113:/home/remote_1/Documents

Lassen Sie uns verstehen, wie der Befehl im Beispiel funktioniert und was er tut:

  • -p 2222 wird verwendet, um die Verbindung über Port 22 anzugeben
  • test1.txt test2.py test3.sh test4.c sind die Namen der zu übertragenden Dateien
  • remote_1 ist der Benutzername des empfangenden Systems
  • 10.10.11.113 ist die IP-Adresse des Empfängers
  • /home/remote_1/Documents bezieht sich auf den Pfad zum Speichern der empfangenen Datei.
Übertragen mehrerer Dateien mit dem scp-Befehl

Sie können sogar Platzhalter verwenden, um mehrere Dateien mit derselben Erweiterung zu senden, wie unten gezeigt:

scp <wildcard>.<extension> <remote_receiver>@<remote_target_ip_address>:<path_to_store_in_remote_destination>

Zum Beispiel, wenn es sein muss Senden Sie alle .py-Dateien an einen Remote-Serververwenden Sie den folgenden scp-Befehl im Linux-Terminal:

scp *.py remote1@10.10.11.113:/home/remote_1/

Hier,

  • *.py bezeichnet alle Python-Dateien
  • remote1 ist der Benutzername des Empfängers
  • 10.10.11.113 ist die IP-Adresse des Empfängers
  • /home/remote_1/ ist der Speicherort für die empfangene Datei
Mehrere Dateien mit derselben Erweiterung auswählen und übertragen

Häufig gestellte Fragen

Ist die SCP-Dateiübertragung sicher?

Das Secure Copy Protocol oder scp ist ein Protokoll, das auf der SSH-Technologie basiert und Verschlüsselung und Authentifizierung für den Austausch von Dateien zwischen zwei Hosts verwendet. Dies gewährleistet vollständige Datensicherheit und -integrität zwischen den beiden Hosts.

Ist SCP sicherer als SFTP?

Sowohl das SCP- als auch das SFTP-Protokoll sind in Bezug auf die Sicherheit gleichwertig. Der Hauptvorteil der Verwendung von scp gegenüber SFTP sind die schnellen Übertragungsgeschwindigkeiten, die besonders in Netzwerken mit hoher Latenz nützlich sind.

Übertragen Sie Dateien sicher mit dem scp-Befehl in Linux

Irgendwann muss jeder Benutzer einige Dateien über das Netzwerk austauschen. Der Befehl scp erleichtert die sichere und effiziente Übertragung von Dateien auch in einem Netzwerk mit hoher Latenz. Sicherlich kann es auch nützlich sein, die verschiedenen scp-Optionen und die Syntax zu kennen. Sie können sich auch auf unsere Anleitungen zum Umbenennen einer Datei in Linux und zum Löschen einer Datei in Linux beziehen, um Ihre Dateiverwaltungsfähigkeiten auf dem Betriebssystem weiter zu verbessern. Wir hoffen, dass dieser Artikel Ihnen dabei geholfen hat, den scp-Befehl zum Übertragen von Dateien auf Linux-Computern zu verwenden. Wenn Sie bei der Verwendung des Befehls auf Probleme stoßen, teilen Sie uns dies im Kommentarbereich mit.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert