Kopieren von Dateien über SSH ⋆ ALexHost SRL

Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills
18.12.2024

Kopieren von Dateien über SSH

SSH (Secure Shell) ist ein weit verbreitetes Protokoll für den sicheren Zugriff auf und die Verwaltung von entfernten Servern über eine verschlüsselte Verbindung. Eine der häufigsten Aufgaben bei der Arbeit mit SSH ist das Kopieren von Dateien zwischen Ihrem lokalen Rechner und einem Remote-Server oder zwischen zwei Remote-Servern.

In diesem Artikel werden wir verschiedene Möglichkeiten zum Kopieren von Dateien über SSH untersuchen, darunter SCP (Secure Copy Protocol), rsync und andere Methoden.


Warum SSH für Dateiübertragungen verwenden?

Die Verwendung von SSH für die Übertragung von Dateien bietet mehrere Vorteile:

  • Sicherheit: SSH verschlüsselt sowohl den Befehl als auch die Daten während der Übertragung und stellt so sicher, dass sensible Informationen geschützt sind.
  • Effizienz: SSH ist schnell und zuverlässig und ermöglicht es Ihnen, Dateien direkt zwischen Systemen zu übertragen, ohne sich separat anmelden zu müssen.
  • Automatisierung: SSH kann in Skripte integriert werden, die automatisierte Dateiübertragungen zwischen Servern oder lokalen Rechnern ermöglichen.

1. Kopieren von Dateien mit SCP (Secure Copy Protocol)

SCP ist eines der beliebtesten Tools zum sicheren Kopieren von Dateien über SSH. Es ermöglicht Ihnen, Dateien von einem lokalen Rechner auf einen entfernten Server, von einem entfernten Server auf Ihren lokalen Rechner oder zwischen zwei entfernten Servern zu übertragen.

Grundlegende SCP-Syntax:

scp [Optionen] [Quelle] [Ziel]

Beispiel 1: Kopieren einer Datei vom lokalen Rechner auf einen entfernten Server

scp /pfad/zu/lokal/datei benutzername@remote_host:/pfad/zu/remote/ziel

In diesem Beispiel:

  • /pfad/zu/local/datei ist der Pfad zur Datei auf Ihrem lokalen Rechner.
  • benutzername@remote_host ist der SSH-Benutzer und der Hostname oder die IP-Adresse des Remote-Servers.
  • /pfad/zu/remote/ziel ist der Pfad, unter dem die Datei auf dem Fernserver gespeichert wird.

Beispiel 2: Kopieren einer Datei vom entfernten Server auf den lokalen Rechner

scp benutzername@remote_host:/pfad/zu/remote/datei /pfad/zu/lokal/ziel

In diesem Fall wird die Datei vom entfernten Server auf den lokalen Rechner übertragen.

Beispiel 3: Ein Verzeichnis rekursiv kopieren

Um ein ganzes Verzeichnis zu kopieren, verwenden Sie die Option -r (rekursiv):

scp -r /pfad/zum/lokalen/verzeichnis username@remote_host:/pfad/zum/remote/ziel

Damit wird das Verzeichnis mit seinem gesamten Inhalt auf den entfernten Server übertragen.

Nützliche SCP-Optionen:

  • -P [port]: Geben Sie den SSH-Port an, wenn er sich von der Standardeinstellung (22) unterscheidet.
  • -C: Aktivieren Sie die Komprimierung während der Übertragung, um das Kopieren von Dateien zu beschleunigen.
  • -i [identitäts_datei]: Verwenden Sie einen bestimmten privaten SSH-Schlüssel für die Authentifizierung.

2. Kopieren von Dateien mit rsync

rsync ist ein weiteres leistungsstarkes Tool für die Dateiübertragung über SSH. Es wird oft für große oder sich wiederholende Dateiübertragungen bevorzugt, da es nur die Änderungen zwischen Quelle und Ziel kopiert und so Zeit und Bandbreite spart.

Grundlegende rsync-Syntax:

rsync [Optionen] [Quelle] [Ziel]

Beispiel 1: Kopieren einer Datei vom lokalen Rechner auf einen entfernten Server

rsync -avz /pfad/zu/lokal/datei benutzername@remote_host:/pfad/zu/remote/ziel

Beispiel 2: Kopieren eines Verzeichnisses mit rsync

rsync -avz /pfad/zum/lokalen/verzeichnis/ benutzername@remote_host:/pfad/zum/remote/ziel/

Nützliche rsync-Optionen:

  • -a: Archivmodus, der symbolische Links, Berechtigungen, Zeitstempel und Dateibesitz beibehält.
  • -v: Ausführlicher Modus zur Anzeige des Fortschritts während der Übertragung.
  • -z: Aktivieren Sie die Komprimierung, um die Übertragung zu beschleunigen.
  • –Löschen: Entfernt Dateien im Ziel, die in der Quelle nicht mehr vorhanden sind.
  • -e “ssh -p [port]”: Geben Sie einen benutzerdefinierten SSH-Port an.

3. Kopieren von Dateien zwischen zwei entfernten Servern

Mit SSH können Sie Dateien auch direkt zwischen zwei entfernten Servern kopieren. Sowohl SCP als auch rsync unterstützen dies.

Beispiel 1: Kopieren von Dateien zwischen zwei Remote-Servern mit SCP

scp benutzername1@remote_host1:/pfad/zu/datei benutzername2@remote_host2:/pfad/zu/ziel

Beispiel 2: Kopieren von Dateien zwischen zwei entfernten Servern mit rsync

rsync -avz Benutzername1@remote_host1:/Pfad/zu/Datei Benutzername2@remote_host2:/Pfad/zu/Ziel

Dies ist besonders nützlich, um Dateien zwischen Servern zu übertragen, ohne sie zuerst auf Ihren lokalen Rechner herunterladen zu müssen.


4. Kopieren von Dateien mit SFTP (SSH File Transfer Protocol)

SFTP ist eine weitere Methode zum sicheren Übertragen von Dateien über SSH. Sie ist ähnlich wie FTP, verwendet aber SSH zur Verschlüsselung. SFTP wird normalerweise in interaktiven Sitzungen verwendet, kann aber auch automatisiert werden.

SFTP verwenden:

Um eine SFTP-Sitzung zu starten, führen Sie den folgenden Befehl aus:

sftp benutzername@remote_host

Sobald Sie sich in der SFTP-Eingabeaufforderung befinden, können Sie Befehle wie diesen verwenden:

  • put /pfad/zur/lokalen/datei /pfad/zur/entfernten/ziel: Laden Sie eine Datei von Ihrem lokalen Rechner auf den entfernten Server hoch.
  • get /pfad/zu/ferngesteuert/datei /pfad/zu/lokal/ziel: Herunterladen einer Datei vom entfernten Server auf Ihren lokalen Rechner.
  • mput und mget: Zum Hoch- oder Herunterladen mehrerer Dateien auf einmal.

Um die SFTP-Sitzung zu beenden, geben Sie exit oder quit ein.


5. Automatisieren von Dateiübertragungen mit SSH-Schlüsseln

Für wiederholte Dateiübertragungen ist es eine gute Idee, eine SSH-Schlüssel-basierte Authentifizierung einzurichten, damit Sie nicht jedes Mal Ihr Passwort eingeben müssen.

Schritt 1: Erzeugen Sie ein SSH-Schlüsselpaar (falls Sie noch keines haben)

Führen Sie auf Ihrem lokalen Rechner Folgendes aus:

ssh-keygen -t rsa

Dadurch werden ein öffentliches und ein privates Schlüsselpaar erzeugt.

Schritt 2: Kopieren des öffentlichen Schlüssels auf den entfernten Server

Verwenden Sie den folgenden Befehl, um Ihren öffentlichen Schlüssel auf den entfernten Server zu kopieren:

ssh-copy-id username@remote_host

Nun können Sie sich anmelden und Dateien übertragen, ohne ein Passwort eingeben zu müssen, was die Automatisierung erleichtert.


Fazit

Das Kopieren von Dateien über SSH ist eine sichere und effiziente Methode, um Daten zwischen Ihrem lokalen Rechner und einem entfernten Server oder zwischen zwei entfernten Servern zu übertragen. Ob Sie SCP, rsync oder SFTP verwenden, SSH bietet verschlüsselte Dateiübertragungen, die Ihre Daten vor dem Abfangen schützen. Tools wie SCP sind einfach für einmalige Übertragungen, während rsync ideal für laufende Synchronisierungsaufgaben ist, insbesondere für große Dateien oder Verzeichnisse. Die Kenntnis dieser Tools wird Ihnen helfen, Dateiübertragungen effektiver zu verwalten, insbesondere in einer Remote-Server-Umgebung.

Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills