Mit dem SCP-Befehl in Linux können Sie Dateien über SSH-Verbindungen kopieren. Das ist ziemlich nützlich, wenn Sie Dateien zwischen Computern transportieren möchten.
Inhaltsverzeichnis
- SCP-Befehlssyntax
- Verwendung des SCP-Befehls unter Linux
- Lokale Datei auf Remote-Server übertragen
- Datei vom Remote-Server auf den lokalen Computer übertragen
- Lokales Verzeichnis rekursiv auf Remote-Server übertragen
- Verzeichnis rekursiv vom Remote-Server zum lokalen übertragen
- Mehrere Dateien auf Remote-Server übertragen
- Erhöhen Sie die Übertragungsgeschwindigkeit, indem Sie die Komprimierung aktivieren
- Anderen SSH-Port angeben
- Erhält Berechtigungen, Modi und Zugriffszeit von Dateien
- Datei identifizieren im SCP-Befehl verwenden
- Schlussfolgerung
Das scp
Der Befehl (Secure Copy) verwendet SSH, um Daten von einem Host auf einen anderen zu übertragen, und verwendet die gleiche Authentifizierung und Sicherheit von SSH. Der Befehl ist jedoch für die Datenübertragung auf SSH angewiesen und erfordert einen SSH-Schlüssel oder ein Kennwort, um sich auf den Remote-Systemen zu authentifizieren.
Beim Übertragen von Daten mit scp
, werden sowohl die Dateien als auch das Passwort verschlüsselt, sodass jeder, der den Datenverkehr ausspioniert, nichts Sensibles erfährt. Dies ist also eine der sichersten Möglichkeiten, Daten in einem Netzwerk zu übertragen.
Das scp
Der Befehl unter Linux kann auf drei Arten verwendet werden:
- Um von einem entfernten Server auf einen lokalen Rechner zu kopieren.
- Auch zum Kopieren von einem lokalen Rechner auf einen entfernten Server.
- Um von einem Remote-Server auf einen anderen Remote-Server zu kopieren.
SCP-Befehlssyntax
Die Syntax für scp
Befehl ist:
scp [OPTION] [[email protected]]SRC_HOST:]file1 [[email protected]]DEST_HOST:]file2
Einige der am häufigsten verwendeten scp
Zu den Befehlsoptionen gehören:
-P
:Server-SSH-Port angeben-p
:Behält Berechtigungen, Modi und Zugriffszeit von Dateien bei (beachten Sie die Kleinschreibung)-q
:Stiller Modus, Fortschritt oder Meldungen nicht anzeigen-C
:Daten während der Übertragung komprimieren-r
:Rekursiv – schließt Unterverzeichnisse und deren Inhalt ein-i
:Identitätsdatei oder privater Schlüssel
Verwendung des SCP-Befehls unter Linux
Lokale Datei auf Remote-Server übertragen
Kopieren Sie file.txt
vom aktuellen Verzeichnis des lokalen Systems zum /tmp
des Remote-Servers Verzeichnis.
scp file.txt [email protected]:/tmp/
Datei vom Remote-Server auf den lokalen Computer übertragen
Der folgende Befehl kopiert /tmp/file.txt
vom Remote-Server auf den lokalen Computer im Home-Verzeichnis des Benutzers.
scp [email protected]:/tmp/file.txt /home/user
Lokales Verzeichnis rekursiv auf Remote-Server übertragen
Sie können das -r
verwenden Option im scp
Befehl in Linux, um das gesamte Verzeichnis rekursiv von einem System auf ein anderes zu kopieren.
Der folgende Befehl kopiert /home/user/myfiles
Verzeichnis vom lokalen Rechner zum /tmp
des Remote-Servers Verzeichnis.
scp -r /home/user/myfiles [email protected]:/tmp/
Verzeichnis rekursiv vom Remote-Server zum lokalen übertragen
Der folgende Befehl kopiert /tmp/serverfiles
Verzeichnis vom Remote-Server auf den lokalen Computer unter dem Home-Verzeichnis des Benutzers rekursiv.
scp -r [email protected]:/tmp/serverfiles /home/user
Mehrere Dateien auf Remote-Server übertragen
Im folgenden Beispiel sind die Dateien file1.txt
und file2.txt
vom Quellhost werden in /tmp
des Remote-Servers kopiert Verzeichnis.
scp file1.txt file2.txt [email protected]:/tmp/
Erhöhen Sie die Übertragungsgeschwindigkeit durch Aktivieren der Komprimierung
Sie können die Übertragungsgeschwindigkeit erhöhen, indem Sie die Komprimierung mit -C
aktivieren Möglichkeit. Es erlaubt automatisch die Komprimierung an der Quelle und die Dekomprimierung am Zielhost.
Der folgende Befehl kopiert /home/user/myfiles
Verzeichnis vom lokalen Rechner zum /tmp
des Remote-Servers Verzeichnis rekursiv mit aktivierter Komprimierung.
scp -r -C /home/user/myfiles [email protected]:/tmp/
Anderen SSH-Port angeben
Es kann Fälle geben, in denen der SSH-Port auf dem Zielhost geändert wird. Wenn Sie also den scp-Befehl unter Linux verwenden, können Sie die SSH-Portnummer mit -P
angeben Option.
Der folgende Befehl kopiert file.txt
vom aktuellen Verzeichnis des lokalen Systems zum /tmp
des Remote-Servers Verzeichnis über Port 2222.
scp -P 2222 file.txt [email protected]:/tmp/
Erhält Berechtigungen, Modi und Zugriffszeit von Dateien
Verwenden Sie das -p
Option im scp
Befehl zum Beibehalten von Berechtigungen, Zugriffszeit und Modi beim Kopieren von Dateien.
Der folgende Befehl kopiert file.txt
vom aktuellen Verzeichnis des lokalen Systems zum /tmp
des Remote-Servers Verzeichnis und behält seine Eigenschaften.
scp -p file.txt [email protected]:/tmp/
Datei im SCP-Befehl identifizieren
Bei Verwendung eines SSH-Schlüssels anstelle eines Passworts während der SSH-Sitzung wird der -i
Flag ermöglicht Ihnen die Auswahl der Datei, aus der die Identität (privater Schlüssel) für die Public-Key-Authentifizierung gelesen wird.
Der folgende Befehl kopiert file.txt
vom aktuellen Verzeichnis des lokalen Systems zum /tmp
des Remote-Servers Verzeichnis mit my_second_indent.pem
private Schlüsseldatei.
scp -i my_second_indent.pem file.txt [email protected]:/tmp/
Schlussfolgerung
In dieser Anleitung haben Sie gelernt, wie Sie scp
verwenden Befehl unter Linux zum Kopieren von Dateien und Verzeichnissen. Dies ist besonders nützlich als Ersatz für FTP, das standardmäßig von Natur aus unsicher ist.
Sie können auch eine SSH-Schlüssel-basierte Authentifizierung einrichten und sich mit Ihren Linux-Servern verbinden, ohne ein Passwort einzugeben.
Weitere Informationen zu scp
Befehl unter Linux finden Sie auf der Handbuchseite.