12 scp command examples securely transfer files linux
In diesem Lernprogramm werden das Secure Copy Protocol oder der SCP-Befehl zum sicheren Kopieren der Dateien unter Linux und Unix mit Syntax und Beispielen erläutert:
In diesem Artikel werden wir den SCP-Befehl (Secure Copy Protocol) erläutern, der für die Dateiübertragung verwendet wird. Wir werden anhand einiger Beispiele sehen, was es ist und wie es funktioniert. Versuchen wir also zunächst zu verstehen, was ein SCP-Befehl ist.
Was du lernen wirst:
Was ist ein SCP-Befehl?
SCP (Secure Copy Protocol) ist ein Netzwerkprotokoll, mit dem die Dateien sicher zwischen Hosts in einem Computernetzwerk übertragen werden. Mit diesem Befehlszeilenprogramm in Linux- und Unix-ähnlichen Systemen können Sie Dateien von einem lokalen Host zu einem Remote-Host oder von einem Remote-Host zu einem lokalen System oder zwischen zwei Remote-Hosts übertragen.
(Bild Quelle ))
SCP stellt die Authentizität, Verschlüsselung und Vertraulichkeit der Daten sicher, indem der SSH-Mechanismus (Secure Shell) zum Übertragen der Dateien verwendet wird. So werden die übertragenen Daten vor den Snooping-Angriffen geschützt. Clients können mithilfe dieses Protokolls Dateien und Verzeichnisse auf und von einem Server hochladen und herunterladen. Für die Authentifizierung sind entweder ein Kennwort oder Schlüssel erforderlich. Der Standardport für SCP ist der TCP-Port 22.
Der Vorteil des SCP-Protokolls besteht darin, dass Sie keine FTP-Sitzung starten oder sich explizit bei den Remote-Hosts für die Dateiübertragung anmelden müssen.
Syntax für das SCP-Protokoll
# 1) Zum Kopieren der Datei vom lokalen auf den Remote-Host
scp (options) SourceFileName UserName@TargetHost:TargetPath
Dies ist die grundlegende Syntax des SCP-Befehls, mit dem die Quelldatei mithilfe eines Benutzerkontos vom aktuellen Host in den Zielpfad des Zielhosts kopiert wird. Normalerweise ähnelt es dem Befehl copy cp.
# 2) Zum Kopieren von einem Remote-Host auf einen lokalen
Zum Kopieren von Dateien:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
Oder, Laden Sie einfach die Datei herunter:
scp (options) UserName@SourceHost:SourceFilePath
Zum Kopieren des Ordners (rekursiv):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
Wenn der Remote-Host einen anderen Port als den Standardport 22 verwendet, muss die Portnummer im Befehl mit der Option -P explizit angegeben werden.
# 3) Kopieren von einem Remotecomputer auf einen anderen Remotecomputer
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
Wenn Sie Dateien von einem Remotecomputer auf einen anderen kopieren, wird der Datenverkehr nicht von Ihrem Computer geleitet. Dieser Vorgang findet direkt zwischen den beiden Remote-Servern statt.
# 4) Kopieren mehrerer Dateien
So kopieren Sie mehrere Dateien von localhost auf einen Remote-Host:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
So kopieren Sie mehrere Dateien von einem Remote-Host in ein aktuelles Verzeichnis von localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Mit dem SCP-Befehl verwendete Optionen
Die am häufigsten verwendeten Optionen mit SCP-Befehl sind unten aufgeführt:
- -C : C steht hier für Enable Compression. Mit dieser Option wird die Komprimierung aktiviert und die Übertragungsgeschwindigkeit beim Kopieren erhöht. Die Komprimierung an der Quelle und die Dekomprimierung am Ziel werden automatisch aktiviert.
- -c: c steht für Chiffre. Standardmäßig verwendet SCP 'AES-128' zur Verschlüsselung von Dateien. Wenn Sie die Verschlüsselung ändern möchten, müssen Sie die Option -c gefolgt vom Namen der Verschlüsselung verwenden.
- -ich : Ich stehe für Identify File oder Private Key. Im Allgemeinen wird in Linux-Umgebungen die schlüsselbasierte Authentifizierung ausgewählt. Daher können wir die private Schlüsseldatei oder Identitätsdatei mit der Option -i speziell erwähnen.
- -l: l steht für Bandbreite begrenzen. Mit dieser Option können Sie die maximal zu verwendende Bandbreite festlegen. Es ist in Kbit / s.
- -B: Diese Option wird verwendet, um den Stapelmodus beim Kopieren zu verwenden.
- -F: Diese Option wird verwendet, um beim Kopieren eine andere ssh_config-Datei zu verwenden, wenn Sie unterschiedliche Netzwerke verwenden müssen, um eine Verbindung zu Linux-Systemen herzustellen. In solchen Szenarien müssen Sie eine Ersatz-SSH-Konfigurationsdatei pro Benutzer zuweisen.
- -P: Wenn sich die SSH-Portnummer des Zielhosts von der Standardportnummer 22 unterscheidet, müssen Sie die Portnummer mithilfe der Option -P speziell angeben.
- -p: Diese Option wird verwendet, um Dateiberechtigungen, Änderungen und Zugriffszeiten beim Kopieren beizubehalten.
- -q: Diese Option führt den SCP-Befehl im leisen Modus aus. Die Fortschrittsanzeige wird ausgeschaltet und der Übertragungsfortschritt, die Warnung oder die Diagnosemeldungen von ssh werden nicht auf dem Linux-Terminalbildschirm angezeigt.
- -r: Mit der Option -r werden die Dateien und Verzeichnisse rekursiv kopiert. Zum Beispiel, Wenn Sie den gesamten Ordner (zusammen mit dem Inhalt des Ordners) auf einen Zielcomputer kopieren möchten, müssen Sie die Option -r verwenden.
- -S: Diese Option wird verwendet, um das Programm anzugeben, das für die Verbindung verwendet werden soll.
- -v: v steht für ausführlich. Diese Option zeigt den schrittweisen Fortschritt der Ausführung des SCP-Befehls auf dem Terminalbildschirm an. Es ist wirklich hilfreich beim Debuggen.
Beispiele für SCP-Befehle
Lassen Sie uns anhand von Beispielen verstehen, wie SCP Command verwendet wird:
Beispiel 1: zum Kopieren vom lokalen auf den Remote-Host
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
Im obigen Beispiel ist
So starten Sie ein Projekt in Eclipse
- Die Option -v wird als ausführliche Option verwendet, um die Details der Ausgabe dieses Befehls auf dem Linux-Terminal anzuzeigen. Mithilfe der ausführlichen Ausgabe können Sie genau wissen, was im Hintergrund passiert, wenn der Befehl ausgeführt wird. Dies hilft beim Debuggen.
- Lockfile.txt ist der Name der Quelldatei, die auf einen Remote-Host übertragen werden soll.
- Kaushapx ist ein Beispiel für einen Benutzernamen. Mit diesem Benutzernamenkonto kopieren wir die Datei sicher auf den Remote-Host.
- 10.172.80.167 ist das Beispiel für die IP des Remote-Zielhosts, auf den die Datei übertragen werden soll.
- / home / cpf657 / kaushapx / test1 ist ein Beispiel für einen absoluten Pfad, in den wir diese übertragene Datei einfügen möchten.
Die folgenden Screenshots zeigen die Ausführung des obigen SCP-Befehls.
Beispiel 2: zum Kopieren vom Remote-Host auf das lokale System:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
Beispiel 3: zum Kopieren mehrerer Dateien auf einen Remote-Host:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
Beispiel 4: zum Kopieren von Dateien auf zwei Remote-Systemen:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Beispiel 5: zum rekursiven Kopieren von Dateien und Verzeichnissen (mit der Option -r):
Angenommen, ich habe einen Ordner namens 'test' im localhost und dieser Ordner enthält vier Dateien. Ich möchte den gesamten Ordner in einen anderen Ordner namens 'test1' kopieren, der auf einem Remote-Host vorhanden ist.
Ich werde den folgenden Befehl verwenden:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Beispiel 6: zum Erhöhen der Kopiergeschwindigkeit durch Aktivieren der Komprimierung (mit der Option -C):
Übertragen wir denselben Ordner wie in Beispiel 5, diesmal jedoch durch Aktivieren der Komprimierung:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Beispiel 7: zum Begrenzen der Bandbreite beim Kopieren (mit der Option -l):
Fahren wir mit der gleichen Option fort. Dieses Mal verwenden wir die Option -l und geben die Bandbreite an, z. B. 500. Denken Sie daran, dass die hier angegebene Bandbreite in Kbit / s angegeben ist.
Beispiel 8: zum Angeben eines anderen SSH-Ports beim Kopieren (mit der Option -P):
Wenn der Remote-Server, auf den Sie die Datei kopieren, einen anderen Port als den Standardport 22 verwendet, müssen Sie die Portnummer im SCP-Befehl mithilfe der Option -P explizit angeben. Zum Beispiel, Wenn der SSH-Port des Remote-Servers 2022 ist, werden Sie im SCP-Befehl -P 2022 erwähnen.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
Beispiel 9: zum Beibehalten von Dateiberechtigungen, Änderungen und Zugriffszeiten beim Kopieren (mit der Option -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Fragen und Antworten zum Interview mit dem technischen Support pdf
Beispiel 10: zum Kopieren von Dateien im stillen Modus (mit der Option -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
Beispiel 11: zum Identifizieren von Dateien in SCP während des Kopierens (mit der Option -i):
Im obigen Beispiel ist my_private_key.pem die Identitätsdatei oder die private Schlüsseldatei.
Beispiel 12: für die Verwendung einer anderen Verschlüsselung beim Kopieren über SCP (mit der Option -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
FAQ zum SCP-Befehl
In diesem Abschnitt werden einige häufig gestellte Fragen zum SCP-Befehl behandelt.
F # 1) Was ist ein SCP-Befehl?
Antworten: SCP steht für Secure Copy Protocol. Mit dem Befehl SCP können Sie das sichere Kopieren von Dateien zwischen Hosts in einem Netzwerk durchführen. Es nutzt die Mechanismen von SSH für die Datenübertragung. Es verwendet entweder eine Schlüssel- oder eine kennwortbasierte Authentifizierung.
F # 2) Was macht SCP unter Linux?
Antworten: Unter Linux überträgt der SCP-Befehl die Dateien auf sichere Weise zwischen Servern. Dies kann eine Dateikopie zwischen einem Remoteserver und einem lokalen Host oder zwischen zwei Remoteservern sein. SCP ist ein unter Linux vorinstallierter Befehl und bekannt für seine Einfachheit und Sicherheit.
F # 3) Wie SCP-Dateien unter Linux?
Antwort: Sie können SCP-Dateien mit der folgenden Befehlssyntax erstellen:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
Mit dem SCP-Befehl können viele Optionen verwendet werden. Zum Beispiel, -C für die Komprimierung, -c für die Verschlüsselung, -P für den Port, -I für den privaten Schlüssel, -l für die Begrenzung, -r für die rekursive Kopie usw.
F # 4) Wie scannen wir eine Datei?
Antworten: Sie können eine Datei mit dem SCP-Befehl wie in Q # 3 beschrieben SCP-fähig machen.
F # 5) Kopiert oder verschiebt SCP?
Antworten: Der SCP-Befehl kopiert die Datei (en) von der Quelle zum Ziel. Nach SCP ist die Datei also auf beiden Hosts vorhanden.
F # 6) Können Sie SCP für ein Verzeichnis verwenden?
Antworten: Ja, wir können SCP für ein Verzeichnis verwenden. Sie müssen die Option -r verwenden, um das gesamte Verzeichnis zusammen mit seinem Inhalt zu kopieren.
Unten finden Sie die SCP-Befehlssyntax zum Kopieren des Verzeichnisses von einem lokalen Host auf einen Remote-Host:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
F # 7) Wie verwenden wir SCP für alle Dateien in einem Verzeichnis?
Antworten: Um SCP für alle Dateien in einem Verzeichnis zu verwenden, müssen Sie * mit dem Verzeichnispfad hinzufügen:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
Auf diese Weise werden alle Dateien im lokalen Verzeichnis in das Remote-Verzeichnis kopiert.
F # 8) Können wir SCP unter Windows verwenden?
Antworten: Ja, Sie können SCP unter Windows verwenden. Im Gegensatz zu Linux und Mac wird es unter Windows jedoch nicht vorab heruntergeladen. Für Windows müssen Sie die SCP-Software daher separat installieren.
Sie können Putty herunterladen, das SCP für Windows enthält (Software namens Putty SCP (PSCP)), oder Sie können WinSCP (Windows Secure Copy) herunterladen. Der PSCP-Client wird direkt über die Windows-Eingabeaufforderung ausgeführt. Es gibt auch andere Software für die Verwendung von SCP in Windows .
F # 9) Wie verwenden wir SCP für mehrere Dateien?
Antworten: Zum Kopieren mehrerer Dateien von localhost auf einen Remote-Host mithilfe von SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
Zum Kopieren mehrerer Dateien von einem Remote-Host in ein aktuelles Verzeichnis von localhost mithilfe von SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
F # 10) Was ist der Unterschied zwischen SCP und SFTP?
Antworten: SCP ist das Secure Copy Protocol. SFTP ist das Secure File Transfer Protocol. Beide verwenden den TCP-Port 22 und laufen auf dem SSH-Mechanismus. Sie unterscheiden sich jedoch in Spezifikationen und Funktionen.
SCP überträgt nur die Daten, während SFTP neben der Dateiübertragung auch Dateizugriffs- und Dateiverwaltungsfunktionen ausführt. Mit SFTP können Sie Vorgänge wie das Auflisten von Remote-Verzeichnissen oder das Löschen von Dateien ausführen. SCP erlaubt jedoch nur das Kopieren von Dateien und Verzeichnissen zwischen Servern.
Die Dateiübertragungsgeschwindigkeit in SCP ist schneller als in SFTP, da ein effizienterer Algorithmus zum Übertragen von Dateien verwendet wird.
VPN fire TV stick kostenlos
In SFTP können Sie die unterbrochene Dateiübertragung vom Befehlszeilenclient fortsetzen. SCP hat diese Funktion jedoch nicht.
SFTP bietet eine GUI-Komponente, SCP jedoch nicht.
F # 11) Was ist der SCP-Befehl in Windows zum sicheren Kopieren einer Datei?
Antworten: Öffnen Sie die Windows-Eingabeaufforderung und geben Sie den folgenden Befehl ein, um eine Datei sicher von einem lokalen Windows-Computer auf einen Server zu kopieren (es kann sich um einen Linux-Server handeln):
pscp filepath userid @ target_server_ip: target_path
Beispiel: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Für die Ausführung dieses Befehls sollte PSCP installiert sein.
F # 12) Ist SCP sicher?
Antworten: Ja, SCP ist sicher. Es verwendet den SSH-Mechanismus (Secure Shell Protocol) für die Datenübertragung und profitiert somit von der Sicherheit, die SSH bietet. Die übertragenen Daten werden vertraulich behandelt und auch ihre Echtheit gewährleistet.
Fazit
In diesem Lernprogramm haben wir gesehen, wie Sie mit dem SCP-Befehl die Dateien sicher zwischen zwei Remote-Hosts oder zwischen einem lokalen Host und einem Remote-Host kopieren können, ohne eine FTP-Sitzung zu initiieren oder sich explizit bei den Remote-Computern anzumelden.
SCP verwendet den SSH-Mechanismus zum Kopieren der Daten und somit werden die übertragenen Daten verschlüsselt und gesichert. Für die Authentifizierung ist ein Kennwort oder ein Schlüssel erforderlich. Im Gegensatz zu RCP (Remote Copy Protocol) oder FTP (File Transfer Protocol) verschlüsselt SCP sowohl die zwischen den Systemen ausgetauschten Dateien als auch die Kennwörter, um jegliches Snooping im Netzwerk zu schützen.
Literatur-Empfehlungen
- Befehl in Unix mit Beispielen ausschneiden
- Befehl 'Suchen' unter Unix: Suchen von Dateien mit Unix 'Datei suchen' (Beispiele)
- Unix Cat-Befehlssyntax, Optionen mit Beispielen
- Ls-Befehl unter Unix mit Beispielen
- Befehlszeilenargumente im Unix-Shell-Skript mit Beispiel
- Grep-Befehl unter Unix mit einfachen Beispielen
- Dateimanipulation unter Unix: Übersicht über das Unix-Dateisystem
- Unix-Sortierbefehl mit Syntax, Optionen und Beispielen