SCP (Secure Copy) ist ein Befehlszeilentool in Linux- und Unix-ähnlichen Systemen, das zum sicheren Übertragen von Dateien und Verzeichnissen zwischen den Systemen über das Netzwerk verwendet wird. Wenn wir den scp-Befehl verwenden, um Dateien und Verzeichnisse von unserem lokalen System auf das Remote-System zu kopieren, stellt er im Backend eine ssh-Verbindung her zum entfernten System. Mit anderen Worten, wir können sagen, dass scp denselben SSH-Sicherheitsmechanismus verwendet im Backend benötigt es entweder ein Passwort oder Schlüssel zur Authentifizierung.
In diesem Tutorial werden wir den scp-Befehl unter Linux mit praktischen Beispielen besprechen.
Syntax des scp-Befehls:
# scp
# scp
Die erste Syntax des Befehls scp zeigt, wie Dateien oder Verzeichnisse vom lokalen System auf den Zielhost unter dem jeweiligen Ordner kopiert werden.
Die zweite Syntax des scp-Befehls zeigt, wie Dateien vom Zielhost in das lokale System kopiert werden.
Einige der am häufigsten verwendeten Optionen im scp-Befehl sind unten aufgeführt,
- -C Komprimierung aktivieren
- -i Identitätsdatei oder privater Schlüssel
- -l Bandbreite beim Kopieren begrenzen
- -P SSH-Portnummer des Zielhosts
- -p Behält Berechtigungen, Modi und Zugriffszeit von Dateien beim Kopieren bei
- -q Warnmeldung von SSH unterdrücken
- -r Dateien und Verzeichnisse rekursiv kopieren
- -v ausführliche Ausgabe
Lassen Sie uns jetzt zu den Beispielen springen!!!!
Beispiel 1) Kopieren einer Datei vom lokalen System auf das entfernte System mit scp
Angenommen, wir möchten das jdk-RPM-Paket von unserem lokalen Linux-System auf das Remote-System (172.20.10.8) mit dem scp-Befehl kopieren, verwenden Sie den folgenden Befehl,
[[email protected] ~]$ scp jdk-linux-x64_bin.rpm [email protected]:/opt[email protected]'s password:jdk-linux-x64_bin.rpm 100 % 10 MB 27,1 MB/s 00:00[[email protected] ~]$
Der obige Befehl kopiert die JDK-RPM-Paketdatei auf das Remote-System im /opt-Ordner.
Beispiel 2) Kopieren einer Datei vom entfernten System auf das lokale System mit scp
Angenommen, wir möchten eine Datei vom Remote-System auf unser lokales System im Ordner /tmp kopieren, führen Sie den folgenden scp-Befehl aus,
[[email protected] ~]$ scp [email protected]:/root/Technical-Doc-RHS.odt /tmp[email protected]'s password:Technical-Doc-RHS.odt 100 % 1109 KB 31,8 MB/ s 00:00[[email protected] ~]$ ls -l /tmp/Technical-Doc-RHS.odt-rwx------. 1 pkumar pkumar 1135521 19. Okt. 11:12 /tmp/Technical-Doc-RHS.odt[[email protected] ~]$
Beispiel 3) Ausführliche Ausgabe beim Übertragen von Dateien mit scp (-v)
Im scp-Befehl können wir die ausführliche Ausgabe mit der Option -v aktivieren, mit der ausführlichen Ausgabe können wir leicht herausfinden, was genau im Hintergrund passiert. Dies ist sehr nützlich beim Debuggen von Verbindungen , Authentifizierung und Konfigurationsprobleme .
[email protected] ~]$ scp -v jdk-linux-x64_bin.rpm [email protected]:/optExecuting:program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t / optOpenSSH_7.8p1, OpenSSL 1.1.1 FIPS 11. September 2018debug1:Konfigurationsdaten lesen /etc/ssh/ssh_configdebug1:Konfigurationsdaten lesen /etc/ssh/ssh_config.d/05-redhat.confdebug1:Konfigurationsdaten lesen /etc/crypto-policies /back-ends/openssh.configdebug1:/etc/ssh/ssh_config.d/05-redhat.conf Zeile 8:Applying options for *debug1:Connecting to 172.20.10.8 [172.20.10.8] port 22.debug1:Verbindung hergestellt. …………debug1:Nächste Authentifizierungsmethode:Passwort[email protected]'s Passwort:
Beispiel 4) Mehrere Dateien auf ein Remote-System übertragen
Mehrere Dateien können mit dem scp-Befehl auf einmal auf das Remote-System kopiert/übertragen werden, im scp-Befehl geben Sie die mehreren Dateien durch Leerzeichen getrennt an, das Beispiel ist unten gezeigt
[[email protected] ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm \ [email protected]:/mnt[email protected]'s password:install.txt 100 % 0 0.0KB/ S 00:00 100%85 KB 7,2 MB/S 00:00JDK-linux-x64_Bin.RPM 100%10 MB 25,3 MB/S 00:00 [[E-Mail geschützt] ~ $
Beispiel 5) Übertragen Sie Dateien zwischen zwei Remote-Hosts
Mit dem scp-Befehl können wir Dateien und Verzeichnisse zwischen zwei entfernten Hosts kopieren, nehmen wir an, wir haben ein lokales Linux-System, das eine Verbindung zu zwei entfernten Linux-Systemen herstellen kann, also kann ich von meinem lokalen Linux-System aus den scp-Befehl verwenden, um Dateien zwischen diesen beiden Systemen zu kopieren.
Syntax:
# scp [E-Mail-geschützt]_hosts1:/
Beispiel ist unten gezeigt,
# scp [E-Mail-geschützt]:~/backup-Oct.zip [E-Mail-geschützt]:/tmp# ssh [E-Mail-geschützt] "ls -l /tmp/backup-Oct.zip"-rwx----- -. 1 root root 747438080 19. Okt 12:02 /tmp/backup-Oct.zip
Beispiel 6) Dateien und Verzeichnisse rekursiv kopieren (-r)
Verwenden Sie die Option -r im scp-Befehl, um das gesamte Verzeichnis rekursiv von einem System auf ein anderes zu kopieren, das Beispiel ist unten gezeigt,
[[email protected] ~]$ scp -r Downloads [email protected]:/opt
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Download-Ordner auf das Remote-System kopiert wurde oder nicht,
[[email protected] ~]$ ssh [email protected] "ls -ld /opt/Downloads"drwxr-xr-x. 2 root root 75 Okt 19 12:10 /opt/Downloads[[email protected] ~]$
Beispiel 7) Erhöhen Sie die Übertragungsgeschwindigkeit, indem Sie die Komprimierung aktivieren (-C)
Im Befehl scp können wir die Übertragungsgeschwindigkeit erhöhen, indem wir die Komprimierung mit der Option -C aktivieren. Dadurch wird automatisch die Komprimierung an der Quelle und die Dekomprimierung am Zielhost aktiviert.
[E-Mail-geschützt] ~]$ scp -r -C Downloads [E-Mail-geschützt]:/mnt
Im obigen Beispiel übertragen wir das Download-Verzeichnis mit aktivierter Komprimierung.
Beispiel 8) Bandbreite beim Kopieren begrenzen ( -l )
Verwenden Sie die Option „-l“ im scp-Befehl, um die Bandbreitennutzung beim Kopieren zu begrenzen. Die Bandbreite wird in Kbit/s angegeben, ein Beispiel ist unten gezeigt,
[[E-Mail-geschützt] ~]$ scp -l 500 jdk-linux-x64_bin.rpm [E-Mail-geschützt]:/var
Beispiel 9) Geben Sie einen anderen ssh-Port an, während scp ( -P)
Es kann ein Szenario geben, in dem der SSH-Port auf dem Zielhost geändert wird, sodass wir bei Verwendung des scp-Befehls die SSH-Portnummer mit der Option „-P“ angeben können.
[[email protected] ~]$ scp -P 2022 jdk-linux-x64_bin.rpm [email protected]:/var
Im obigen Beispiel ist der SSH-Port für den Remote-Host „2022“
Beispiel 10) Behält Berechtigungen, Modi und Zugriffszeit von Dateien beim Kopieren bei (-p)
Verwenden Sie die Option „-p“ im scp-Befehl, um Berechtigungen, Zugriffszeit und Modi beim Kopieren von der Quelle zum Ziel beizubehalten
[[email protected] ~]$ scp -p jdk-linux-x64_bin.rpm [email protected]:/var/tmpjdk-linux-x64_bin.rpm 100 % 10 MB 13,5 MB/s 00:00[[email protected ] ~]$
Beispiel 11) Übertragen von Dateien im stillen Modus ( -q) in scp
Verwenden Sie die Option „-q“ im scp-Befehl, um den Übertragungsfortschritt sowie Warn- und Diagnosemeldungen von ssh zu unterdrücken. Beispiel ist unten gezeigt,
[[E-Mail-geschützt] ~]$ scp -q -r Lädt [E-Mail-geschützt] herunter:/var/tmp[[E-Mail-geschützt] ~]$
Beispiel 12) Verwenden Sie Datei identifizieren in scp während der Übertragung ( -i )
In den meisten Linux-Umgebungen wird die schlüsselbasierte Authentifizierung bevorzugt. Im scp-Befehl geben wir die Identifizierungsdatei oder die private Schlüsseldatei mit der Option „-i“ an, das Beispiel ist unten gezeigt,
[[email protected] ~]$ scp -i my_key.pem -r Downloads [email protected]:/root
Im obigen Beispiel ist „my_key.pem“ die Identitätsdatei oder private Schlüsseldatei.
Beispiel 13) Verwenden Sie eine andere „ssh_config“-Datei in scp (-F)
Es gibt einige Szenarien, in denen Sie verschiedene Netzwerke verwenden, um sich mit Linux-Systemen zu verbinden, möglicherweise befindet sich ein Netzwerk hinter Proxy-Servern, also müssen wir in diesem Fall unterschiedliche ssh_config haben Datei.
Eine andere ssh_config-Datei im scp-Befehl wird über die Option „-F“ angegeben, ein Beispiel ist unten gezeigt
[[email protected] ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads \ [email protected]:/root[email protected]'s password:jdk-linux-x64_bin.rpm 100 % 10 MB 16.6 Mb/s 00:00backup-oct.zip 100%713 MB 41,9 MB/S 00:17IndexBeispiel 14) Verwenden Sie eine andere Verschlüsselung im scp-Befehl (-c)
Standardmäßig verwendet scp die Verschlüsselung „AES-128“, um die Dateien zu verschlüsseln. Wenn Sie eine andere Chiffre im scp-Befehl verwenden möchten, verwenden Sie die Option „-c“, gefolgt vom Chiffrennamen,
Angenommen, wir möchten die Chiffre „3des-cbc“ im scp-Befehl verwenden, während wir die Dateien übertragen, führen Sie den folgenden scp-Befehl
aus[[email protected] ~]# scp -c 3des-cbc -r Downloads [email protected]:/rootVerwenden Sie den folgenden Befehl, um ssh- und scp-Chiffren aufzulisten,
[[email protected] ~]# ssh -Q cipher localhost | paste -d , -s -3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,[E-Mail-geschützt],\aes128-ctr,aes192-ctr,aes256-ctr,[E-Mail-geschützt],[E-Mail-geschützt] ,\[email protected][[email protected] ~]#Das ist alles aus diesem Tutorial, um mehr Details über den scp-Befehl zu erhalten, verweisen Sie bitte auf seine Manpage. Bitte teilen Sie Ihr Feedback und Ihre Kommentare im Kommentarbereich unten.
Auch lesen : 11 „df“-Befehlsbeispiele in Linux