scp-Beispiele: Dateien und Ordner über SSH kopieren

Zum Hochladen einer Datei führen Sie scp file.txt user@server:/tmp/ aus. Zum Herunterladen scp user@server:/tmp/file.txt .. Mit -r kopieren Sie einen Ordner und mit -P 2222 nutzen Sie einen anderen Port, mit großem P. Ein Remote-Pfad braucht den Doppelpunkt, denn ohne ihn behandelt scp den Namen als lokale Datei.

Lieber Dateien ziehen als Pfade tippen? Wardterm öffnet die Dateien jedes gespeicherten Servers per SFTP. Zeigen

Aktualisiert am . scp aus OpenSSH 10.3 unter macOS zu OpenSSH 10.0 unter Debian 13 in einem Wegwerf-Container.

Gängige Beispiele

AufgabeBefehl
Eine Datei hochladenscp report.pdf user@server:/tmp/
Eine Datei herunterladenscp user@server:/tmp/report.pdf .
Mit neuem Namen herunterladenscp user@server:/tmp/report.pdf copy.pdf
Einen Ordner hochladenscp -r site user@server:/tmp/
Den Inhalt eines Ordners herunterladenscp -r 'user@server:/tmp/site/*' dl/
Anderer Portscp -P 2222 file user@server:/tmp/
Einen bestimmten Schlüssel verwendenscp -i ~/.ssh/id_work file user@server:/tmp/
Zeiten und Rechte beibehaltenscp -p file user@server:/tmp/
Geschwindigkeit begrenzen, in Kbit/sscp -l 800 file user@server:/tmp/
Komprimierenscp -C file user@server:/tmp/
Über einen Jump-Hostscp -J user@jump file user@server:/tmp/

Ein Host-Eintrag in ~/.ssh/config funktioniert auch hier: scp file server:/tmp/. Siehe die SSH-Konfigurationsdatei.

Die Zeile mit -J führt über einen Jump-Host. Um diesen Weg fest zu speichern, siehe ProxyJump und Jump-Hosts.

Einen Ordner zweimal kopieren verschachtelt ihn

Existiert der Zielordner bereits, legt scp -r den Ordner in ihn hinein. Mit bereits vorhandenem /tmp/site auf dem Server ergab dies bei uns /tmp/site/site:

scp -r site user@server:/tmp/site

Der erste Lauf legt also /tmp/site an und ein zweiter /tmp/site/site. Um einen Ordner wiederholt zu kopieren, nehmen Sie stattdessen rsync.

Namen mit Leerzeichen

scp "my file.txt" "user@server:/tmp/my file.txt"

Das funktioniert mit dem standardmäßigen SFTP-Protokoll. Mit dem alten Protokoll durch -O scheiterte dieselbe Zeile mit scp: ambiguous target, weil die Gegenseite den Namen noch einmal auswertet. Fügen Sie dann ein zweites Paar Anführungszeichen hinzu:

scp -O "my file.txt" 'user@server:"/tmp/my file.txt"'

Zwischen zwei Servern

scp -3 user@one:/tmp/file user@two:/tmp/

-3 leitet die Daten über Ihren Rechner, sodass keiner der Server eine Anmeldung am anderen braucht. Seit OpenSSH 8.7 ist das der Standard, die Option macht es nur ausdrücklich. In unserem Test lief auch eine Kopie ohne -3 über den lokalen Client.

Damit sich der erste Server direkt mit dem zweiten verbindet, nutzen Sie -R:

scp -R user@one:/tmp/file user@two:/tmp/

Der erste Server muss sich dann ohne Abfrage am zweiten anmelden können und dessen Host-Schlüssel bereits kennen. Sonst erhalten Sie Host key verification failed., was in unserem Test passiert ist.

-O: das Legacy-Protokoll

Seit OpenSSH 9.0 nutzt scp standardmäßig das SFTP-Protokoll. Sie sehen das mit scp -v, das Sending subsystem: sftp ausgibt. Mit -O gibt es Sending command: scp -v -t /tmp/ aus.

scp -O file user@server:/tmp/

Sie brauchen -O, wenn die Gegenseite kein SFTP-Subsystem hat, etwa bei manchen Embedded-Geräten. Der übliche Fehler lautet dann subsystem request failed on channel 0. Siehe die Anleitung zu diesem Fehler.

Was scp nicht kann

  • Es setzt eine abgebrochene Übertragung nicht fort. Führen Sie es erneut aus, beginnt es von vorn.
  • Es sendet nicht nur, was sich geändert hat.

Dafür nutzen Sie rsync oder reget in sftp. Den vollständigen Vergleich lesen Sie in scp, SFTP oder rsync.

Fragen

Wie kopiere ich einen Ordner mit scp?

Mit -r: scp -r ordner user@server:/tmp/. Gibt es den Zielordner schon, legt scp den Ordner darin ab.

Wie nutze ich scp mit einem anderen Port?

Mit großem -P, zum Beispiel scp -P 2222 file user@server:/tmp/. Das kleine -p behält dagegen Zeiten und Rechte der Dateien bei.

Kann scp eine abgebrochene Übertragung fortsetzen?

Nein. Ein neuer Aufruf beginnt die Datei von vorn. Nutzen Sie rsync mit --partial oder reget und reput in sftp.

Quellen

Mehr zu SFTP und Dateiübertragung

Alle Anleitungen