Heim  >  Artikel  >  System-Tutorial  >  So übertragen Sie Dateien sicher per SSH mit dem Befehl scp unter Linux

So übertragen Sie Dateien sicher per SSH mit dem Befehl scp unter Linux

WBOY
WBOYnach vorne
2024-02-09 13:39:30833Durchsuche

So übertragen Sie Dateien sicher per SSH mit dem Befehl scp unter Linux

Auf Unix- oder Linux-Betriebssystemen ähnelt das scp-Dienstprogramm (sichere Kopie) dem bekannteren Befehl cp, wird jedoch zum Übertragen von Dateien und Verzeichnissen zwischen Hosts über ein sicheres, verschlüsseltes Netzwerk verwendet.

Da die Datenübertragung auf SSH basiert, bietet es die gleiche Sicherheit und verwendet die gleiche Authentifizierung wie SSH. Im Gegensatz zu rcp fordert Sie der scp-Befehl bei Bedarf zur Eingabe eines Passworts zur Authentifizierung auf.

In diesem Artikel tauchen wir tief in die sichere Dateiübertragung unter Linux ein und lernen, wie man den scp-Befehl verwendet. Mit detaillierten Erklärungen und Beispielanwendungsfällen gängiger SCP-Schalter und -Optionen erfahren Sie, wie Sie dieses Dienstprogramm verwenden.

Es ist wichtig, Folgendes zu wissen, bevor Sie beginnen

  1. Da SCP für die Datenübertragung auf SSH angewiesen ist, ist zur Authentifizierung auf dem Remote-System ein SSH-Schlüssel oder ein SSH-Passwort erforderlich (Linux-Dateiübertragung SSH).
  2. Bestätigen Sie, dass Sie über Schreibberechtigungen auf dem Zielsystem und Leseberechtigungen für die Quelldatei verfügen.
  3. Hinweis: Das scp-Tool verwendet einen Doppelpunkt (:), um zwischen entfernten und lokalen Standorten zu unterscheiden.
  4. Beim Kopieren einer Datei mit demselben Speicherort und Namen auf beiden Seiten überschreibt scp die Datei ohne vorherige Warnung.

SCP-Linux-Befehlssyntax

Um den scp-Befehl verwenden zu können, müssen Sie seine grundlegende Syntax kennen, die im folgenden Format vorliegt:

less复制代码
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

Optionen: Stellt SCP-Optionen wie SSH-Konfiguration, Passwort, Einschränkungen, SSH-Port, rekursive Kopie usw. dar.

[user@]SRC_HOST:]file1: Gibt die Quelldatei an.

[user@]DEST_HOST:]file2: stellt die Zieldatei dar

Wie jeder andere Befehl verfügt auch das scp-Tool über einige Optionen zur Steuerung seines Verhaltens. Die häufigsten sind die folgenden:

  • -P: Gibt den SSH-Port des Remote-Hosts an, zu dem eine Verbindung hergestellt werden soll.
  • -p: Gibt an, dass Dateiänderungen, Modus und Zugriffszeit aus der Originaldatei erhalten bleiben.
  • -q: Nicht-Fehlermeldungen und Fortschrittsanzeigen müssen unterdrückt werden.
  • -C: Erzwingt, dass scp Daten komprimiert, wenn das Flag -C an ssh übergeben wird, um die Komprimierung für verschlüsselte sichere Verbindungen zu aktivieren.
  • -r: Weist den scp-Befehl an, das gesamte Verzeichnis rekursiv zu kopieren.
  • -S: Der Name des Programms, mit dem die Verbindung verschlüsselt wird. Da SSH verwendet wird, muss das Programm den SSH-Schalter verstehen.
  • -v: Ausführlicher Modus. Ermöglicht scp und ssh, Meldungen über ihren Fortschritt auszugeben. Dies ist nützlich beim Debuggen von Verbindungs-, Konfigurations- und Authentifizierungsproblemen.

Lokale Dateien an ein entferntes Ziel übertragen

Bevor wir scp verwenden, kopieren wir mit cp Dateien von einem Ordner in einen anderen. Wir alle wissen, wie man den cp-Befehl verwendet, um dies zu erreichen:

bash复制代码
cp /home/linuxmi/linuxmi.mp3 /home/linuxmi/audio

Es kopiert die Datei linuxmi.mp3 im Home-Verzeichnis des Benutzers linuxmi in den Home-Ordner desselben Benutzers, das Audioverzeichnis von linuxmi.

In ähnlicher Weise ist ein Beispiel für den scp-Befehl, der verwendet werden kann, wie folgt:

typescript复制代码
scp /home/linuxmi/linuxmi.mp3 linuxmi@linuxmi.com:/home/linuxmi/audio

Verwenden Sie linuxmi als Anmeldenamen, um die Datei linuxmi.mp3 auf den Server linuxmicom in das Remote-Verzeichnis /home/linuxmi/audio hochzuladen. Bitte beachten Sie, dass scp Sie vor Beginn des Uploads zur Eingabe des Remote-Passworts für Linuxmi auffordert. Wenn kein Remote-Verzeichnis angegeben ist, werden die Dateien in das Home-Verzeichnis des Remote-Benutzers kopiert. Wenn Sie für den Zielordner keinen Dateinamen angeben, wird scp die Datei mit dem Originalnamen kopieren. Wenn Sie die Datei unter einem anderen Namen speichern möchten, müssen Sie einen neuen Dateinamen angeben.

Entfernte Dateien an das lokale Ziel übertragen

Um die Datei herunterzuladen, können Sie einen Remote-Standort als Quellort angeben. Zum Beispiel:

scp linuxmi@linuxmi.com:/home/linuxmi/audio/* /home/linuxmi/downloads

Alle Audiodateien im Remote-Verzeichnis /home/linuxmi/audio auf linuxmi.com werden in das lokale Verzeichnis /home/linuxmi/downloads heruntergeladen.

Notieren Sie sich den Dateinamen:

Der Dateiname kann aus Benutzer und Host bestehen, um die Übertragung der Datei zu oder von diesem Host anzuzeigen. Um zu vermeiden, dass scp Dateinamen verarbeitet, die „:“ als Hostspezifizierer enthalten, können lokale Dateinamen entweder absolut oder relativ sein. Der Remote-Dateiname sollte jedoch sowohl Benutzer als auch Host enthalten.

Standard-Portnummer:

Wenn SSH auf dem Remote-Host einen anderen Port überwacht (d. h. einen anderen Port als den Standardport 22), können Sie den Schalter -P verwenden, um diesen Port anzugeben.

Lokales Verzeichnis auf Remote-Ziel übertragen

Kopieren Sie ein Verzeichnis an einen entfernten Speicherort, ähnlich wie beim Kopieren von Dateien. Für rekursive Übertragungen müssen Sie lediglich das Flag -r verwenden.

Um das gesamte Verzeichnis auf das Remote-System zu kopieren, führen Sie den Befehl mit der Option -r aus, zum Beispiel:

scp -r /home/linuxmi/local_folder linuxmi@linuxmi.com:/home/linuxmi/remote_folder

Dateiübertragung zwischen zwei Remote-Systemen

Der folgende Befehl kopiert die Datei /folder/linuxmi.mp3 vom Remote-Host linuxmi.com in das Verzeichnis /folder auf dem Remote-Host www.linuxmi.com.

scp linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

Nachdem Sie diesen Vorgang gestartet haben, werden Sie aufgefordert, die Passwörter beider Remote-Ziele anzugeben.

Um den Datenverkehr über localhost (d. h. den Computer, auf dem der Befehl ausgeführt wird) weiterzuleiten, verwenden Sie den Schalter -3 wie folgt:

scp -3 linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

Das obige ist der detaillierte Inhalt vonSo übertragen Sie Dateien sicher per SSH mit dem Befehl scp unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen