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.
Inhaltsverzeichnis
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
Verständnis der Syntax:
- Zuerst <(E-Mail geschützt)_ip_address:path/to/source/file> gibt das ‚Quell‘-System an, von wo aus Sie Ihre Dateien/Verzeichnisse übertragen müssen.
- Zweitens <(E-Mail geschützt)_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:
OptionsDestination-PGibt an, welcher Port mit dem Hostsystem verbunden werden soll. Wenn weggelassen, wird standardmäßig Port 22 verwendet. -pBehält Änderungszeiten, Zugriffszeiten und Modi der Originaldatei beim Kopieren auf das Zielsystem bei.-rKopiert das gesamte Verzeichnis rekursiv auf das Zielsystem.-JUsed to connect the Quellsystem und Zielsystem über ein Proxy-System (Jump Host).-3Wenn dieses Flag verwendet wird, kopiert es die Dateien sowohl auf das Zielsystem als auch auf das lokale System.-4Zwingt den scp-Befehl, nur IPv4-Adressen zu verwenden.-6Zwingt das scp-Befehl, um 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
Wenn die obige Syntax kompliziert erscheint, wird sie durch ein Beispiel geklärt:
scp test.txt (E-Mail geschützt):/home/remote2/Dokumente/
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.
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
Angenommen, Sie müssen eine Datei namens test.py von dem Remote-Server übertragen, an dem Sie arbeiten, verwenden Sie diesen Befehl:
scp (E-Mail geschützt):/home/test/test1.py ~/test1.py
In diesem Beispiel:
- test ist der Benutzername des entfernten Hosts.
- 10.10.11.113 ist die IP-Adresse des Remote-Hosts.
- /home/test/test1.py ist der Pfad der Datei, die vom Remote-Host übertragen werden soll.
- ~/test1.py ist der Name der Datei, nachdem sie auf den lokalen Computer übertragen und im Home-Verzeichnis gespeichert wurde.
Ü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 entfernten Rechner übertragen, sondern auch Dateien zwischen zwei entfernten Systemen. 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
2. Für Verschlüsselungsalgorithmen können Sie „rsa“, den am häufigsten verwendeten Algorithmus, oder jeden anderen Algorithmus Ihrer Wahl verwenden.
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.
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
Hinweis: 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
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 (E-Mail geschützt):/home/test1/test.txt (E-Mail geschützt):/home/remote2/Documents/test1.txt
In diesem Beispiel:
- remote1 ist der Name des Benutzers im 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
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 (E-Mail geschützt):/home/remote_1/Dokumente
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.
Sie können sogar Platzhalter verwenden, um mehrere Dateien mit derselben Erweiterung zu senden, wie unten gezeigt:
scp
Wenn Sie beispielsweise alle .py-Dateien an einen Remote-Server senden müssen, verwenden Sie den folgenden scp-Befehl im Linux-Terminal:
scp *.py (E-Mail geschützt):/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
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.