So verwenden Sie den SCP-Befehl unter Linux

Ein einfaches Tutorial, das Ihnen hilft, Dateien von Ihrem Linux-System mit dem Befehl scp auf ein Remote-System zu übertragen.

SCP steht für „Sichere Kopie“. scpist ein von Linux angebotenes Befehlszeilen-Dienstprogramm, das die Übertragung von Dateien und Verzeichnissen von einem Computer auf einen anderen über ein unsicheres Netzwerk ermöglicht.

Wenn Sie Dateien von einem System auf ein anderes kopieren möchten, scpkann dies eine sehr gute Möglichkeit sein, die Dateien und Verzeichnisse sicher zu übertragen. Wenn die beiden kommunizierenden Maschinen über dasselbe Netzwerk verbunden sind, wird die Verwendung scpmöglich.

Sie können sich in scpBezug auf Vertraulichkeit und Integrität stark auf den Befehl verlassen, da die übertragene Datei und das für die Übertragung verwendete Passwort verschlüsselt sind. Es werden keine sensiblen Informationen preisgegeben, selbst wenn jemand versucht, den Datenverkehr während dieser Übertragung auszuspionieren.

In diesem Tutorial sehen wir verschiedene Beispiele für den scpBefehl. Wir werden uns auch einige der häufig verwendeten Optionen mit dem scpBefehl ansehen .

Erste Schritte mit dem scp-Befehl

Mit dem scpBefehl können Sie Dateien/Verzeichnisse übertragen:

  • Von Ihrem lokalen Computer zu einem Remote-Computer.
  • Zwischen zwei entfernten Maschinen.
  • Von einem Remote-Computer zu Ihrem lokalen Computer.

Allgemeine Syntax:

scp [Option] [source_file_name] [[email protected]_Host]:destination_folder

Lassen Sie uns die grundlegenden Attribute dieses Befehls nacheinander verstehen.

  • [source_file_name] Dies ist die Quelldatei, die Sie kopieren möchten.
  • [ [email protected] _Host] Dies ist der Benutzername des Remote-Systems, auf das Sie die Datei kopieren möchten. Die IP-Adresse des Remote-Rechners wird in diesem Attribut auch nach dem ' @'-Symbol verwendet.
  • [Zielordner] Dies ist das Verzeichnis, in dem Sie die kopierte Datei speichern möchten.

Hinweis: Der Doppelpunkt ( :) wird in der Syntax verwendet, da er zwischen lokalen und entfernten Standorten unterscheidet. Wir verwenden den Doppelpunkt ( :) beim entfernten System, um das Verzeichnis anzugeben, in das die Dateien kopiert werden sollen. Falls wir das Zielverzeichnis nicht angeben, werden die Dateien in das Home-Verzeichnis des Remote-Systembenutzers kopiert.

Optionen verwendet mit scp

Einige der beliebtesten Optionen, die mit dem scpBefehl verwendet werden, sind unten aufgeführt.

Möglichkeit Beschreibung
-C Komprimierung der zu übertragenden Datei zulassen
-v die ausführliche Ausgabe geben
-r Dateien und Verzeichnisse rekursiv kopieren
-p Bewahren Sie Berechtigungen, Modi und Zugriffszeiten von Dateien auf
-P Ändern Sie den vom scpBefehl verwendeten Standardport

Häufig verwendete Optionen mit dem Befehl scp

Wir werden die Beispiele für diese Optionen weiter unten im Tutorial sehen.

Kopieren einer Datei vom lokalen auf ein entferntes System

scpermöglicht Ihnen die Übertragung von Dateien von Ihrem lokalen System auf ein entferntes System unter Verwendung der folgenden Syntax. Auf diese Weise können Sie Ihre Dateien auf einen entfernt platzierten Server übertragen oder hochladen.

Allgemeine Syntax:

scp [file_name] [email protected]:[destination_folder]

Beispiel:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

In diesem Beispiel kopieren wir eine Datei 'apache-tomcat-9.0.8.tar.gz' vom lokalen System auf das entfernte System, dessen IP-Adresse '143.110.178.221' lautet.

Auf dem entfernten System wird die Datei nun in das Verzeichnis namens 'gaurav' kopiert.

Ausgabe:

[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password: 
apache-tomcat-9.0.8.tar.gz                           100% 9589KB  79.8KB/s   02:00    
[email protected]:~$ 

Lassen Sie uns die Ausgabe auf dem Remote-System auf die Datei überprüfen.

[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#

Somit wird die Datei mit dem scpBefehl erfolgreich auf das entfernte System kopiert .

Kopieren mehrerer Dateien auf ein Remote-System

Im vorherigen Beispiel haben wir gelernt, eine Datei mit dem scpBefehl auf das Remote-System zu übertragen . Wir sehen nun die Methode zum Übertragen mehrerer Dateien von Ihrem lokalen System auf ein Remote-System mit diesem Befehl.

Allgemeine Syntax:

scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]

Lassen Sie uns diesen einfachen Vorgang anhand eines Beispiels verstehen.

Beispiel:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

Hier werden mehrere Dateien im Befehl erwähnt, die auf das Remote-System kopiert werden sollen.

Ausgabe:

[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav 
[email protected]'s password: 
ath.html                                      100%  199KB  94.7KB/s   00:02    
abc.txt                                       100%    0     0.0KB/s   00:00    
ppa-purge_0.2.8+bzr56_all.deb                 100% 4360    42.2KB/s   00:00    
[email protected]:~$

Auf dem Remote-System:

[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root       0 Oct  5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct  5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root  204057 Oct  5 08:58 ath.html
-rw-r--r-- 1 root root    4360 Oct  5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#

Alle drei Dateien werden nun auf das entfernte System kopiert.

Kopieren eines Verzeichnisses auf das Remote-System

Sie können den scpBefehl verwenden, um ein Verzeichnis von Ihrem lokalen System auf das entfernte System zu kopieren. Der Vorgang ist ähnlich wie beim Kopieren einer Datei. Um auch den Inhalt des Verzeichnisses zu kopieren, können Sie die -rOption mit dem scpBefehl verwenden.

Die -rOption wird verwendet, um ein Verzeichnis rekursiv zu kopieren. Das heißt, alle Unterordner und Dateien innerhalb des Verzeichnisses werden ebenfalls kopiert.

Allgemeine Syntax:

scp -r [directory path] [email protected]_host:[target_directory]

Beispiel:

scp -r PycharmProjects [email protected]:gaurav

Ausgabe:

[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password: 
__main__.py                                   100%  623     7.8KB/s   00:00    
__init__.py                                   100%   23     0.4KB/s   00:00    
completion.py                                 100% 2929    28.1KB/s   00:00    
search.py                                     100% 4728    38.7KB/s   00:00    
uninstall.py                                  100% 2963    32.5KB/s   00:00    
hash.py                                       100% 1681    21.3KB/s   00:00    
check.py                                      100% 1430    16.8KB/s   00:00    
configuration.py                              100% 7125    50.4KB/s   00:00    
show.py                                       100% 6289    49.8KB/s   00:00    
download.py                                   100% 6623    48.2KB/s   00:00  
[email protected]:~$  

Wenn Sie die -rOption mit dem scpBefehl verwenden, werden alle Unterordner und Dateien innerhalb des Verzeichnisses vom lokalen Computer auf das Remote-System kopiert.

Detaillierte Informationen zum scp-Prozess anzeigen

Sie können die Option -v(Kleinbuchstabe v) verwenden, um die Informationen zu den Dateien anzuzeigen, die entweder auf ein entferntes oder Ihr lokales System kopiert werden. Diese Art der Ausgabe wird auch als ausführliche Ausgabe bezeichnet.

Wenn diese Option verwendet wird, werden die vollständigen Debug-Informationen über die Datei auf dem Bildschirm angezeigt.

Allgemeine Syntax:

scp -v [file_name] [email protected]_host:

Beispiel:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

Ausgabe:

[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/gaurav/.ssh/id_rsa type -1
apache-tomcat-9.0.8.tar.gz                                                                                          100% 9589KB  99.8KB/s   01:36    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$

Hier in der Ausgabe können Sie sehen, dass die Debug-Informationen der Datei auf Ihrem Terminal angezeigt werden, wenn der scpBefehl mit der -vOption verwendet wird.

Übertragen von Dateien zwischen zwei Remote-Hosts

Linux ermöglicht es Ihnen, sich mit mehreren Remote-Hosts zu verbinden. Mit dem scpBefehl können Sie Dateien und Verzeichnisse zwischen zwei entfernten Hosts übertragen .

Allgemeine Syntax:

scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]

Die Syntax mag etwas breiter erscheinen, ist aber ziemlich einfach. Hier gibt der erste Teil des Befehls die Eingabe über den entfernten Benutzer, von dem die Datei kopiert werden soll. Doppelpunkt (:) und /wird verwendet, um den Dateinamen oder den Verzeichnisnamen anzugeben, der zwischen den beiden entfernten Maschinen übertragen werden soll.

Der zweite Teil gibt Auskunft über das Zielfernsystem, auf das die Datei kopiert werden soll.

Beispiel:

scp -r [email protected]:gaurav [email protected]:/team

Hier kopieren wir ein Verzeichnis namens 'gaurav' rekursiv vom lokalen System auf ein entferntes System. Die Datei wird in einen Ordner 'team' auf dem Remote-System kopiert.

Ausgabe:

[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team 
[email protected]'s password: 
1.py                                          100%  134   261.3KB/s   00:00    
variables.py                                  100%  377   949.2KB/s   00:00    
abc.txt                                       100%    0     0.0KB/s   00:00    
ath.html                                      100%  199KB  41.8MB/s   00:00    
[email protected]:~$

Hier haben wir den scpBefehl auf dem lokalen System verwendet, um ein Verzeichnis namens 'gaurav' von einem entfernten Server auf einen anderen zu übertragen.

Übertragen Sie Dateien vom Remote-System auf Ihr lokales System

Sie können die Dateien oder Verzeichnisse einfach mit dem scpBefehl vom Remote-System auf Ihr lokales System übertragen . In einfacheren Worten können Sie mit dem scp Befehl mehrere Dateien oder Verzeichnisse vom Remote-Server auf Ihr lokales System herunterladen .

Allgemeine Syntax:

scp [email protected]_host:/files/file.txt /[folder_of_local_system]

Ausgabe:

[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password: 
how.txt                                                                                                             100%   11     0.1KB/s   00:00    
[email protected]:~$

Hier habe ich die Datei vom Remote-Server in mein Home-Verzeichnis heruntergeladen (kopiert). Daher habe ich Punkt ( .) verwendet, um im Befehl anzugeben, dass die Datei in mein Home-Verzeichnis kopiert werden soll.

Beispielausgabe:

[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct  6 09:49 how.txt
[email protected]:~$ 

Hier wird die Datei nun vom Remote-Server in mein Home-Verzeichnis kopiert.

Auf die gleiche Weise können Sie mit dem scpBefehl mit den entsprechenden Optionen mehrere Dateien oder Verzeichnisse vom Remote-Server herunterladen .

Komprimieren von Dateien für schnellere Übertragungen

Manchmal kann die Übertragung großer Dateien zeitaufwändig sein. Dieses Problem kann behoben werden, wenn der scpBefehl mit der Option -C(Großbuchstaben C) verwendet wird.

Mit der -C Option werden größere Dateien komprimiert, was eine schnellere Übertragung ermöglicht und somit Zeit spart.

Eine interessante Tatsache bei dieser Option ist, dass die Datei mit ihrer Originalgröße auf das Zielsystem kopiert wird, aber während des Übertragungsvorgangs die Größe komprimiert wird, um eine schnellere Übertragung zu ermöglichen. Somit erfolgt die Komprimierung nur im Netzwerk.

Allgemeine Syntax:

scp -C [file_name] [email protected]_host:[target_folder]

Sehen wir uns ein Vergleichsbeispiel an, um den Unterschied zu verstehen.

Übertragung ohne Option -C:

[email protected]:~$ scp -rv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$ 

Aus der obigen Ausgabe können wir sehen, dass die für die Übertragung erforderliche Zeit 74,6 Sekunden beträgt. Wir werden versuchen, dieselbe Datei mit der Option -C zu übertragen und den Unterschied zu beobachten.

Übertragung mit Option -C:

[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img                                                                                                       100% 1834KB  98.7KB/s   00:18    
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img                                                                                                          100% 1834KB 100.3KB/s   00:18    
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
DSL-2750U-Release-IN-T-01.00.07.zip                                                                                 100% 3666KB 218.5KB/s   00:16    
Sink: E
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$

Hier können wir leicht feststellen, dass die Verwendung der -COption mit dem scpBefehl es uns ermöglicht hat, die Datei über das Netzwerk zu komprimieren, was sich als zeitsparende Option erwiesen hat.

Verwenden eines anderen SSH-Ports für die Dateiübertragung

Bei Verwendung des scpBefehls ist der bereitgestellte Standardport die port 22. Der Benutzer hat die Freiheit, diese Portauswahl anzupassen. Sie können die -POption (Option in Großbuchstaben P) mit dem scpBefehl verwenden, um den Port Ihrer Wahl zu verwenden.

Allgemeine Syntax:

cp -P [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]

Beispiel:

scp -P 4248 dlink [email protected]:team

Mit dem obigen Befehl wird die Datei auf den Remote-Server übertragen. Aber dieses Mal wird der verwendete Port port 4248anstelle des Standard- Ports verwendet port 22.

Abschluss

Nachdem wir dieses Tutorial durchgearbeitet haben, haben wir die dynamische Natur des scpBefehls kennengelernt, der verwendet wird, um Dateien von einem System auf ein anderes zu übertragen oder zu kopieren. Diese Option kann auch verwendet werden, um Dateien oder Verzeichnisse vom Remote-Server herunterzuladen. Daraus können wir schließen, dass sich der scpBefehl für Dateiübertragungen als sehr hilfreich erweist, wenn Sie mehr als ein System sowie Remote-Server gleichzeitig verwalten müssen.


Kopieren und Einfügen auf Chromebook

Kopieren und Einfügen auf Chromebook

Das erste, was Sie sich beim Wechsel zu einem Chromebook vielleicht fragen werden, ist, wie Sie die grundlegenden Dinge erledigen - die Art von Dingen, die Sie in Ihrem vorherigen Betriebssystem auf der Rückseite hatten. Kopieren und Einfügen ist eine dieser grundlegenden Funktionen, die Sie an der einen oder anderen Stelle verwenden müssen.

So machen Sie einen Schreibtest unter Linux mit tt

So machen Sie einen Schreibtest unter Linux mit tt

In der modernen Ära der Technologie ist das Tippen zu einer der häufigsten Tätigkeiten für viele Berufe geworden. Wenn Sie lernen, schneller und genauer zu tippen, können Sie mehr Dinge in der gleichen Zeit erledigen.

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

Ubuntu ist beliebt für seine Robustheit und relativ weniger Fehler. Aber es ist sicher nicht ohne Probleme. Ein solches Problem ist mit seinem Wi-Fi-Treiber. Möglicherweise schalten Sie Ihr System nur ein, um festzustellen, dass Ihr Wi-Fi nicht funktioniert.

So erstellen und scannen Sie QR-Codes auf Chromebook

So erstellen und scannen Sie QR-Codes auf Chromebook

Quick Response Codes, kurz QR-Codes, sind fortschrittliche Barcodes, die mehr Informationen enthalten als ein herkömmlicher Barcode. Diese Codes sind zweidimensional, sodass Sie sie vertikal oder horizontal scannen können.

So installieren und entfernen Sie Pakete in Arch Linux

So installieren und entfernen Sie Pakete in Arch Linux

Sie möchten Pakete unter Arch Linux installieren, wissen aber nicht wie? Viele Leute stehen vor diesem Problem, wenn sie zum ersten Mal von Debian-basierten Distributionen zu Arch migrieren. Sie können Pakete auf Ihrem Arch-basierten System jedoch problemlos mithilfe von Paketmanagern verwalten.

So installieren Sie Spotify unter Linux

So installieren Sie Spotify unter Linux

Spotify ist einer der größten Musik-Streaming-Dienste auf dem Markt. Es verfügt über native Clients sowohl für mobile (Android und iOS) als auch für Desktop-Geräte (Mac und Windows).

9 grundlegende Befehle für den Einstieg in Linux

9 grundlegende Befehle für den Einstieg in Linux

In Linux-Anleitungen wird oft erwartet, dass Sie bestimmte Operationen im Terminal ausführen, was auf den ersten Blick einschüchternd wirken kann. Aber keine Sorge; Dieser Spickzettel für Linux-Befehle behandelt das Öffnen eines Terminals und das Ausgeben einiger nützlicher Befehle.

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

Während Sie wahrscheinlich bereits wissen, wie Sie eine Datei unter Linux mit dem GUI-Dateibrowser verschieben, fragen Sie sich vielleicht, ob es im Terminal einen Verschiebebefehl gibt, mit dem Sie Dateien schnell in verschiedene Verzeichnisse verschieben können. Der mv-Befehl ist der gewünschte und mit seiner einfachen Syntax und einigen optionalen Sicherheitsflags einfach zu verwenden.

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Viele neue aktualisierte Designs können auf dem neuen GNOME-Desktop von Ubuntu 20.04 installiert werden. Hier ist eine Liste der besten Ubuntu-Themes im Jahr 2020

Die 10 besten Debian-basierten Linux-Distributionen

Die 10 besten Debian-basierten Linux-Distributionen

Das Standard-Debian und sein beliebter Ableger Ubuntu sind großartige Allround-Optionen für ein Linux-System, aber wenn Sie speziellere Bedürfnisse haben, möchten Sie vielleicht eine Debian-Alternative.