SCP (Secure Copy) ist ein Befehlszeilenprogramm, mit dem du Dateien und Verzeichnisse sicher zwischen verschiedenen Orten kopieren kannst.
Verwende scp
zum Kopieren von Dateien oder Verzeichnissen:
- Von deinem lokalen System zu einem entfernten System.
- Von einem entfernten System zu deinem lokalen System.
- Zwischen zwei entfernten Systemen von deinem lokalen System aus.
Bei der Verwendung von scp
werden sowohl die Dateien als auch die Passwörter verschlüsselt, um sensible Daten vor Ausspähung zu schützen.
In diesem Tutorial zeigen wir dir, wie du den scp
-Befehl anhand von Beispielen und Erklärungen der gängigsten Optionen nutzen kannst.
SCP-Befehlssyntax
Bevor wir uns mit der Verwendung des scp
-Befehls beschäftigen, betrachten wir die grundlegende Syntax:
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
OPTION
– Optionen wie Verschlüsselung, SSH-Konfiguration, SSH-Port, Limit, rekursives Kopieren usw.[user@]SRC_HOST:]file1
– Quelldatei.[user@]DEST_HOST:]file2
– Zielort.
Lokale Dateien erfordern einen absoluten oder relativen Pfad, während entfernte Dateien Benutzer- und Hostinformationen enthalten.
Einige der am häufigsten verwendeten Optionen sind:
-P
– SSH-Port des entfernten Hosts.-p
– Behält Änderungs- und Zugriffszeiten der Dateien bei.-q
– Unterdrückt Fortschrittsanzeigen und Nicht-Fehlermeldungen.-C
– Komprimiert Daten während der Übertragung.-r
– Kopiert Verzeichnisse rekursiv.
Vorbereitung
Der scp
-Befehl verwendet SSH zur Datenübertragung und erfordert daher SSH-Authentifizierung mittels Schlüssel oder Passwort auf den entfernten Systemen.
Mit einem Doppelpunkt (:
) unterscheidet scp
zwischen lokalen und entfernten Standorten.
Du benötigst Leserechte auf der Quelldatei und Schreibrechte auf dem Zielsystem, um Dateien zu kopieren.
Sei vorsichtig beim Kopieren von Dateien mit denselben Namen und Speicherorten, da scp
Dateien ohne Warnung überschreibt.
Bei großen Dateien empfiehlt es sich, scp
in einer Screen- oder tmux-Sitzung auszuführen.
Kopieren von Dateien und Verzeichnissen
Kopieren einer lokalen Datei auf ein entferntes System
Um eine Datei von einem lokalen auf ein entferntes System zu kopieren, verwende:
scp datei.txt remote_username@10.10.0.2:/remote/directory
Hierbei ist Datei.txt
der Dateiname, remote_username
der Benutzer auf dem entfernten Server und 10.10.0.2
die Server-IP. /remote/directory
ist der Zielverzeichnispfad. Ohne Angabe eines Remote-Verzeichnisses wird die Datei ins Home-Verzeichnis des Benutzers kopiert.
Du wirst zur Eingabe des Benutzerkennworts aufgefordert, bevor die Übertragung beginnt.
Wenn SSH auf einem anderen Port als dem Standardport 22 läuft, verwende das -P
-Argument:
scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory
Das Kopieren eines Verzeichnisses erfordert das -r
-Flag für rekursives Kopieren:
scp -r /lokal/Verzeichnis remote_username@10.10.0.2:/remote/directory
Kopieren einer entfernten Datei auf ein lokales System
Um eine Datei von einem entfernten auf ein lokales System zu kopieren, verwende den entfernten Ort als Quelle und den lokalen Ort als Ziel:
scp remote_username@10.10.0.2:/remote/file.txt /local/directory
Bei passwortloser SSH-Anmeldung wirst du zur Eingabe des Benutzerpassworts aufgefordert.
Kopieren zwischen zwei entfernten Systemen
Im Gegensatz zu rsync
musst du dich bei scp
nicht auf einem der Server anmelden, um zwischen zwei entfernten Rechnern zu kopieren:
scp user1@host1.com:/files/file.txt user2@host2.com:/files
Gib die Passwörter für beide Konten ein. Die Daten werden direkt von einem Remote-Host zum anderen übertragen.
Um den Datenverkehr über den Rechner zu leiten, auf dem der Befehl erteilt wird, verwende -3
:
scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files
Zusammenfassung
Dieses Tutorial hat dir gezeigt, wie du den scp
-Befehl verwendest, um Dateien und Verzeichnisse sicher zu kopieren.
Erwäge die Einrichtung einer SSH-Schlüssel-basierten Authentifizierung für eine passwortlose Verbindung zu Linux-Servern.
Definiere regelmäßig verwendete Verbindungen in der SSH-Konfigurationsdatei, um deinen Workflow zu vereinfachen.