SCP Mastery: Secure Copy Protocol (Artikel 282)
Beherrschung des scp-Befehls zum sicheren Dateitransfer. Erfahren Sie alles über Port-Anpassungen, rekursives Kopieren und die modernen Alternativen zum klassischen SCP.
# SCP Mastery: Der schnelle Weg für sichere Kopien
TL;DR / Management Summary Der Befehl scp (Secure Copy) ist der Klassiker für den schnellen Datei-Transfer zwischen Servern. Er nutzt die Verschlüsselung von SSH und ist auf fast jedem Unix-System sofort einsatzbereit. Ein Senior Admin muss jedoch wissen: Das ursprüngliche SCP-Protokoll gilt heute als veraltet und unsicher im Design. Moderne OpenSSH-Versionen nutzen
scpnur noch als Interface für das sichereresftp-Protokoll. Wir lernen, wie man Dateien schiebt, Ports biegt und wann man besser zu rsync greift.
# 1. Einführung & Architektur
Verschlüsseltes Kopieren.
SCP kopiert Dateien über einen SSH-Tunnel. Im Gegensatz zu rsync (Artikel 280) überträgt SCP immer die gesamte Datei, auch wenn nur ein Byte geändert wurde.
# Der Datenfluss (Mermaid)
graph LR
A[SLES Local Host] -->|SSH Tunnel Port 22| B[Remote Host]
A -->|Send Full File| B
subgraph "Internal Logic"
C[Legacy SCP Protocol]
D[Modern: SFTP Backend]
end
A --- D
# 2. Grundlegende Befehle
Vom Client zum Server.
# Datei zum Server kopieren
# scp <quelle> <ziel>
scp my_file.txt user@remote-host:/tmp/
# Datei vom Server laden
scp user@remote-host:/etc/nginx/nginx.conf ./nginx.conf.bak
# Ganze Verzeichnisse kopieren
# -r: Rekursiv
scp -r ./my_app_folder user@remote-host:~/apps/
# 3. Fortgeschrittene Optionen
Spezialfälle im RZ.
# Non-Standard SSH-Ports
Wenn Ihr Server auf Port 2222 lauscht (siehe Artikel 027):
# WICHTIG: -P (Groß-P) bei scp, -p (Klein-p) bei ssh!
scp -P 2222 backup.tar.gz admin@server:/data/
# Performance-Tuning
In schnellen Netzen kann die Verschlüsselung bremsen. Nutzen Sie eine schnellere Cipher (nur für unkritische Daten!):
scp -c aes128-gcm@openssh.com large_file.iso server:/tmp/
# 4. Day-2 Operations: Limitierung
Das Netzwerk schonen.
Verhindern Sie, dass ein riesiger ISO-Download die gesamte Internet-Leitung des Standorts blockiert.
# -l: Limit in Kbit/s (8000 = 1MB/s)
scp -l 8000 image.iso user@remote-host:/data/
# 5. Troubleshooting & “War Stories”
Wenn die Kopie hängen bleibt.
# Story 1: “Die hängende Wildcard”
Symptom: scp user@server:/data/*.log . schlägt fehl mit no matches found.
Ursache: Die lokale Shell versucht die Wildcard * auf dem lokalen Rechner aufzulösen, statt sie an den Remote-Server zu übergeben.
Lösung: Escapen Sie die Wildcard oder setzen Sie den Pfad in Quotes:
scp user@server:"/data/*.log" .
# Story 2: “Das SCP-Sicherheitsloch”
Symptom: Ein Security-Scanner meldet Schwachstellen im SCP-Protokoll (CVE-2020-15778).
Ursache: Das klassische SCP-Protokoll erlaubt es unter bestimmten Umständen, Befehle auf dem Zielsystem einzuschleusen.
Lösung: Nutzen Sie das Flag -s (zwingt die Nutzung des SFTP-Protokolls als Backend) oder wechseln Sie permanent zu rsync oder sftp (Artikel 281).
# 6. Fazit & Empfehlung
- Schnelligkeit:
scpist unschlagbar für den schnellen Einzeiler (“Schieb mal kurz rüber”). - Wartung: Für automatisierte Backups nutzen Sie rsync – es spart massiv Zeit durch das Delta-Verfahren.
- Wichtig: Merken Sie sich den Unterschied beim Port-Flag (
-Pvs-p). Dies ist die häufigste Fehlerquelle in Admin-Skripten.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Datei hochladen | scp <file> user@host:<path> |
| Datei runterladen | scp user@host:<path> <local> |
| Ganzer Ordner | scp -r ... |
| Mit anderem Port | scp -P <port> ... |
| Bandbreite limitieren | scp -l <kbit> ... |
| Metadaten behalten | scp -p ... (Zeitstempel, Rechte) |
| SFTP Modus erzwingen | scp -s ... |
| Kompression | scp -C ... (Gut für langsame WANs) |
| Hilfe anzeigen | scp --help |