Einführung
SCP (Secure Copy Protocol) ist ein Netzwerkprotokoll, das zum sicheren Kopieren von Dateien/Ordnern zwischen Linux (Unix)-Systemen in einem Netzwerk verwendet wird. Verwenden Sie zum Übertragen den scp
Befehlszeilenprogramm, eine sicherere Variante des Befehls cp (copy).
SCP schützt Ihre Daten beim Kopieren über eine SSH-Verbindung (Secure Shell), indem die Dateien und Kennwörter verschlüsselt werden. Daher werden die Informationen auch dann verschlüsselt, wenn der Datenverkehr abgefangen wird.
Verwenden Sie SCP, wenn:
- Kopieren von Dateien von einem lokalen Host auf einen entfernten Host.
- Kopieren von Dateien von einem entfernten Host auf einen lokalen Host.
- Kopieren von Dateien zwischen zwei Remote-Servern.
Diese Anleitung zeigt Ihnen, wie Sie Dateien mit dem SCP-Befehl kopieren und enthält 13 Beispiele für den praktischen Einsatz des Befehls .

Voraussetzungen
- Eine sichere Shell-Anmeldung auf dem Server
- (optional) Root-Zugriff sowohl auf dem Client als auch auf dem Server
- Ein sicheres Shell-Login auf dem Serversystem
SCP-Befehlssyntax
Die Syntax für die Verwendung von scp
Befehl ist:
scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path]
Wenn Sie weglassen:
- der Benutzername des Hosts (oder Ziels) verwendet der Befehl standardmäßig den aktuellen Benutzer.
- der Pfad/zur/Quelle (oder Ziel/Pfad ) aus dem Befehl sucht (oder kopiert) das Programm die Datei lokal.
Wenn Sie mit entfernten Dateien arbeiten, geben Sie immer die Benutzer- und Host-Spezifikationen an.
Stellen Sie sicher, dass Sie ein Konto mit Lesezugriff auf die Datei(en) verwenden, die Sie auf dem Quellsystem kopieren möchten. Außerdem müssen Sie ein Konto mit Schreibzugriff auf das Verzeichnis verwenden, in dem die Datei(en) auf dem Zielsystem gespeichert werden.
SCP-Befehlsoptionen
Sie können viele scp
hinzufügen Befehlsoptionen zum Befehl hinzufügen, um den Vorgang anzupassen und zu beschleunigen. Optionen werden als Attribute direkt nach dem scp
hinzugefügt Befehl.
Jede Option hat eine kurze, aus einem Zeichen bestehende Form und ein längeres, beschreibendes Äquivalent.
-1 | Protokoll 1 verwenden. |
-2 | Verwenden Sie Protokoll 2. |
-4 | Nur IPv4-Adressen verwenden. |
-6 | Nur IPv6-Adressen verwenden. |
-B | Im Stapelmodus ausführen, alle Abfragen für Benutzereingaben deaktivieren. |
-b buffer_size | Geben Sie die für die Datenübertragung verwendete Puffergröße an. Wenn nicht angegeben, wird der Standardwert - 32768 Bytes verwendet. |
-C | Komprimierung aktivieren. |
-c cipher | Wählen Sie die Chiffre für die Datenverschlüsselung. Wenn nicht angegeben, verwendet SCP den Standardwert „AnyStdCipher“. |
-D debug_level | Stellen Sie die Debug-Stufe ein (1, 2, 3 oder 99). |
-d | Kopieren Sie die Datei, nur wenn das Zielverzeichnis bereits existiert. |
-F file | Geben Sie eine alternative Konfigurationsdatei für SSH an . |
-h | Zeige eine Liste mit Befehlsoptionen. |
-i file | Geben Sie die Datei an, aus der die Identität für die Public-Key-Authentifizierung gelesen werden soll. |
-l limit | Begrenzen Sie die Bandbreite (geben Sie das Limit in an Kbit/s). |
-o ssh_option | Optionen auf SSH im ssh_config-Format setzen. |
-P port | Geben Sie den Port an, zu dem eine Verbindung hergestellt werden soll. Wenn nicht angegeben, verwendet SCP Port 22. |
-q | SCP im stillen Modus ausführen. |
-Q | Deaktivieren Sie die Anzeige von Dateiübertragungsstatistiken. |
-r | Rekursiv kopieren. |
-S program | Verwenden Sie ein bestimmtes Programm für die verschlüsselte Verbindung. |
-u | Löschen Sie die Quelldatei, sobald der Kopiervorgang abgeschlossen ist. |
-v | Aktivieren Sie den ausführlichen Modus, der den Debug-Level auf 2 setzt. |
Beispiele für SCP-Befehle
Um dieses nützliche Dienstprogramm besser zu verstehen, werfen Sie einen Blick auf das folgende scp
Befehlsbeispiele.
Kopieren Sie eine Datei vom lokalen auf den Remote-Server
Im folgenden Beispiel kopieren wir eine Beispieldatei von einem lokalen Host auf einen Remote-Server:
scp Desktop/sample_example.txt [email protected]:/home/remote_dir
Der Befehl enthält die folgenden Informationen:
Desktop/sample_example.txt
- Name der kopierten Datei und Speicherort.[email protected]
- Benutzername und IP-Adresse des Remote-Servers./home/remote_dir
– der Ort, an dem die kopierte Datei gespeichert werden soll.

Kopieren Sie eine Datei von einem Remote-Server auf den lokalen Host
Um eine Beispieldatei von einem entfernten Host auf einen lokalen Host zu kopieren, führen wir Folgendes aus:
scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop
Die bereitgestellten Informationen sind
[email protected]
- Benutzername und IP-Adresse des Remote-Servers, auf dem sich die Datei derzeit befindet./home/remote_dir/sample_example.txt
- Name der kopierten Datei und Speicherort.home/Desktop
– der Ort, an dem die kopierte Datei gespeichert werden soll.

Kopieren Sie eine Datei von einem Remote-Server auf einen anderen
Sehen wir uns als Nächstes an, wie Sie eine Datei mithilfe von scp
von einem Remote-Server auf einen anderen Remote-Server kopieren Befehl:
scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop
Der obige Befehl gibt Folgendes an:
[email protected]
- Benutzername und IP-Adresse des Remote-Servers, auf dem sich die Datei derzeit befindet./home/remote_dir/sample_example.txt
- Name der kopierten Datei und Speicherort.[email protected]
– den Benutzernamen und die IP-Adresse des Remote-Servers, auf den wir die Datei kopieren möchten.home/Desktop
– der Ort, an dem die kopierte Datei auf dem Remote-Server gespeichert werden soll.
Mehrere Dateien mit SCP kopieren
Mit SCP können Sie mehrere Dateien mit einem einzigen Befehl kopieren. Der folgende Befehl kopiert beispielsweise zwei Dateien von einem lokalen Host auf einen Remote-Server:
scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir
Es enthält die folgenden Informationen:
example/sample1.txt
– Name und Speicherort der ersten kopierten Datei.example/sample2.txt
– Name und Speicherort der zweiten kopierten Datei.[email protected]
- Benutzername und IP-Adresse des Remote-Servers, der die Dateien empfängt./home/remote_dir
- der Ort, an dem die kopierten Dateien auf dem Remote-Server gespeichert werden.

Einen Ordner rekursiv vom lokalen Host auf den Remote-Server kopieren
Abgesehen von Dateien, scp
kann auch Ordner sicher auf oder von entfernten Servern kopieren. Der folgende Befehl zeigt, wie ein Beispielverzeichnis rekursiv auf einen entfernten Server kopiert wird:
scp -r example [email protected]:/home/remote_dir
Der Befehl enthält:
-r
– die Option zum rekursiven Kopieren des Ordners.example
– der Name des Ordners, der vom lokalen Server kopiert wird.[email protected]
- Benutzername und IP-Adresse des Remote-Servers, der den Ordner empfängt./home/remote_dir
- der Ort, an dem der kopierte Ordner auf dem Remote-Server gespeichert werden soll.
Kopieren Sie eine Datei mit SCP unter Verwendung eines bestimmten Ports
Standardmäßig verwendet SCP Port 22. Wenn ein Remote-System jedoch so konfiguriert ist, dass es SSH-Anfragen auf einem anderen Port abhört, verwenden Sie –P
wechseln, um den Port anzugeben.
Beispielsweise kopiert der folgende Befehl eine Datei von einem lokalen auf einen Remote-Server, wobei Port 2222 verwendet wird:
scp -P 2222 Desktop/sample_example.txt [email protected]:/home/remote_dir
Die Komponenten des obigen Befehls sind:
-P 2222
– Verwenden Sie den Port 2222.Desktop/sample_example.txt
- den Dateinamen, den Sie kopieren möchten, und seinen Speicherort.[email protected]
- Benutzername und IP-Adresse des Remote-Servers, der die Datei empfängt./home/remote_dir
- der Ort, an dem die kopierte Datei auf dem Remote-Server gespeichert werden soll.
Kopieren Sie eine Datei mit SCP im stillen Modus
Ausführen eines scp
Befehl im stillen Modus bedeutet, dass die Fortschrittsanzeige deaktiviert wird und keine Fehlermeldungen in der Ausgabe angezeigt werden. Dazu müssen Sie das -q
hinzufügen Möglichkeit:
scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir

Kopieren Sie eine Datei mit SCP im ausführlichen Modus
Sie können scp
ausführen im ausführlichen Modus durch Hinzufügen von -v
Option, die den Debug-Level auf 2 setzt. Dadurch werden Debugging-Informationen in der Ausgabe gedruckt, die Ihnen bei der Fehlersuche helfen können.
Fügen Sie -v
hinzu Option nach scp
um den ausführlichen Modus zu aktivieren, wie im folgenden Beispiel:
scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir

Kopieren Sie eine Datei mit SCP und begrenzen Sie die Bandbreite
Eine weitere hilfreiche Option ist die Begrenzung der vom scp
verwendeten Bandbreite Befehl durch Hinzufügen von -l
Parameter. Dies ist besonders nützlich, wenn große Dateien kopiert werden, um zu verhindern, dass SCP die Bandbreite verbraucht.
Wenn Sie die Bandbreite begrenzen, müssen Sie die Zahl in Kilobit/s angeben. Beachten Sie, dass 1 Byte =8 Bit sind. Wenn Sie also die Bandbreite für SCP auf 100 KB/s begrenzen möchten, wäre der Wert für l in kbps 800 (100 x 8), wie im folgenden Befehl:
scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir
Kopieren Sie eine Datei mit SCP schneller
Um die Dateiübertragung von einem Server zum anderen zu beschleunigen, fügen Sie -C
hinzu Option, die die Datei während der Übertragung komprimiert. Sobald die Datei ihr Ziel erreicht hat, nimmt sie wieder ihre normale Größe an.
scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir
Kopieren Sie eine Datei mit SCP unter Verwendung einer bestimmten Verschlüsselung
Standardmäßig verwendet SCP AES-128 zum Verschlüsseln von Dateien. Der -c
Mit der Option können Sie die Chiffre ändern, die SCP zum Verschlüsseln der Datei verwendet.
Um die Sicherheit zu erhöhen, können Sie beispielsweise auf die 3des-Verschlüsselung umschalten, wie im folgenden Beispiel:
scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir
Kopieren Sie eine Datei mit SCP unter Verwendung von IPv4 oder IPv6
Sie können SCP zwingen, abhängig von Ihren Anforderungen nur IPv4 oder IPv6 zu verwenden, indem Sie das -4 hinzufügen oder -6 Attribut.
Um eine Beispieldatei nur unter Verwendung von IPv6 von einem lokalen Server auf einen entfernten Host zu kopieren, würden Sie Folgendes ausführen:
scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir
Kopieren Sie eine Datei mit SCP unter Beibehaltung der Dateiattribute
Um eine Datei mit SCP zu kopieren und Dateiattribute wie Änderungs- und Zugriffszeiten, Modi und Berechtigungen beizubehalten, verwenden Sie -p
Möglichkeit:
scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir