linux-cli-shell cli file-management networking ssh scp security

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 scp nur noch als Interface für das sicherere sftp-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: scp ist 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 (-P vs -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