scp — Dateien sicher über SSH kopieren
Praxis-Guide zu scp und sftp — Dateien sicher per SSH zwischen lokalem Rechner und Remote-Host übertragen, mit rekursiven Transfers und Schlüssel-Auth.
scp kopiert Dateien zwischen lokalem Rechner und Remote-Host direkt über eine SSH-Verbindung – kein separates Protokoll, keine zusätzliche Software nötig. Du gibst Quelle und Ziel in vertrauter cp-Syntax an; die Verschlüsselung übernimmt SSH im Hintergrund. Für größere Datenmengen oder inkrementelle Transfers lohnt sich ein Blick auf rsync; für interaktives Browsen auf dem Server bringt sftp eine FTP-ähnliche Sitzung.
scp — Auf den Remote-Host kopieren
scp <file> <user>@<host>:<path> — Kopiert eine lokale Datei auf einen Remote-Host.
scp config.yaml admin@server:/etc/app/scp -r <dir> <user>@<host>:<path> — Kopiert ein Verzeichnis rekursiv auf den Remote-Host.
scp -r ./dist/ deploy@server:/var/www/html/scp -P <port> <file> <user>@<host>:<path> — Kopiert über einen benutzerdefinierten SSH-Port.
scp -P 2222 backup.tar.gz admin@server:/backups/scp -i <key> <file> <user>@<host>:<path> — Kopiert mit einem bestimmten SSH-Schlüssel.
scp -i ~/.ssh/deploy_key app.tar.gz deploy@server:/opt/scp — Vom Remote-Host kopieren
scp <user>@<host>:<path> <local> — Kopiert eine Datei vom Remote-Host auf den lokalen Rechner.
scp admin@server:/var/log/app.log ./logs/scp -r <user>@<host>:<path> <local> — Kopiert ein Verzeichnis rekursiv vom Remote-Host.
scp -r admin@server:/etc/nginx/ ./nginx-backup/scp <user>@<host1>:<path> <user>@<host2>:<path> — Kopiert direkt zwischen zwei Remote-Hosts.
scp admin@server1:/data/dump.sql admin@server2:/data/scp — Optionen
scp -C <file> <user>@<host>:<path> — Aktiviert Komprimierung während der Übertragung.
scp -C largefile.sql admin@server:/tmp/scp -l <kbit/s> <file> <user>@<host>:<path> — Begrenzt die Bandbreite (in Kbit/s).
scp -l 5000 backup.tar.gz admin@server:/backups/scp -p <file> <user>@<host>:<path> — Behält Zeitstempel und Berechtigungen der Datei bei.
scp -p important.conf admin@server:/etc/app/scp -q <file> <user>@<host>:<path> — Stiller Modus: unterdrückt die Fortschrittsanzeige.
scp -q script.sh admin@server:/usr/local/bin/sftp — Interaktive Sitzung
sftp <user>@<host> — Startet eine interaktive SFTP-Sitzung.
sftp admin@serverget <remote-file> — Lädt eine Datei herunter (innerhalb der sftp-Sitzung).
sftp> get /var/log/app.logput <local-file> — Lädt eine Datei hoch (innerhalb der sftp-Sitzung).
sftp> put config.yaml /etc/app/mget <pattern> — Lädt mehrere Dateien herunter, die einem Muster entsprechen.
sftp> mget *.logmput <pattern> — Lädt mehrere Dateien hoch, die einem Muster entsprechen.
sftp> mput *.confls — Listet den Inhalt des Remote-Verzeichnisses auf.
sftp> ls -lalls — Listet den Inhalt des lokalen Verzeichnisses auf.
sftp> llssftp — Batch-Modus
sftp -b <batchfile> <user>@<host> — Führt SFTP-Befehle aus einer Batch-Datei aus.
sftp -b commands.txt admin@serversftp -P <port> <user>@<host> — Verbindet über einen benutzerdefinierten SSH-Port.
sftp -P 2222 admin@serversftp -i <key> <user>@<host> — Verbindet mit einem bestimmten SSH-Schlüssel.
sftp -i ~/.ssh/deploy_key deploy@server Fazit
scp erledigt schnelle Einzel-Transfers zuverlässig und ohne Konfigurationsaufwand – solange SSH erreichbar ist, hast du ein sicheres Kopierwerkzeug zur Hand. Für wiederkehrende oder bandbreitenoptimierte Übertragungen ist rsync die bessere Wahl; für interaktive Sitzungen greifst du auf sftp zurück. Mit einem passenden SSH-Schlüssel entfällt die Passworteingabe komplett.
Weiterführende Links
- Secure Copy – Wikipedia – Hintergrund und Geschichte
- scp(1) – OpenSSH Manpage – alle Optionen im Überblick (englisch)
Verwandte Kommandos
- ssh – Remote-Verbindung per SSH – die Basis, auf der scp aufbaut
- ssh-keygen – SSH-Schlüsselpaar erstellen für passwortlose scp-Transfers
- mosh – robuste SSH-Alternative für instabile Verbindungen