Zuletzt aktualisiert am 04.12.2025 5 Minuten Lesezeit

SFTP

SFTP (SSH File Transfer Protocol) ist ein sicheres Dateiübertragungsprotokoll, das auf SSH basiert und verschlüsselte Dateitransfers über Port 22 ermöglicht.

SFTP (SSH File Transfer Protocol) ist ein Netzwerkprotokoll für den sicheren Dateizugriff, die Dateiübertragung und die Dateiverwaltung über eine verschlüsselte Verbindung. Im Gegensatz zum klassischen FTP überträgt SFTP alle Daten und Befehle verschlüsselt über das SSH-Protokoll. Du kannst dir SFTP als eine sichere Alternative zu FTP vorstellen, bei der niemand deine übertragenen Dateien oder Zugangsdaten mitlesen kann.

Wie funktioniert SFTP?

SFTP arbeitet nach dem Client-Server-Modell. Der Client stellt eine Verbindung zum Server her, authentifiziert sich und kann dann Dateien hoch- oder herunterladen, Verzeichnisse erstellen oder Dateiberechtigungen ändern. Der entscheidende Unterschied zu FTP: Die gesamte Kommunikation läuft über einen einzigen verschlüsselten SSH-Kanal.

Der Verbindungsaufbau erfolgt in mehreren Schritten:

  1. Der Client sendet ein INIT-Paket mit seiner unterstützten Protokollversion an den Server
  2. Der Server antwortet mit einem VERSION-Paket und bestätigt die verwendete Version
  3. Nach erfolgreicher Authentifizierung steht der verschlüsselte Kanal für Dateioperationen bereit
  4. Alle weiteren Befehle (OPEN, READ, WRITE, CLOSE) werden über diesen Kanal übertragen

Die wichtigsten SFTP-Operationen umfassen das Öffnen und Schließen von Dateien, das Lesen und Schreiben von Daten sowie das Abfragen von Dateiattributen. Jede Operation erhält eine Statusmeldung zurück, die Erfolg oder Fehler signalisiert.

Port und Netzwerkkonfiguration

SFTP nutzt ausschließlich Port 22 - den Standardport des SSH-Protokolls. Das ist ein wesentlicher Vorteil gegenüber klassischem FTP, das separate Ports für Steuerung (Port 21) und Datenübertragung (Port 20) benötigt. Die Verwendung eines einzigen Ports macht SFTP deutlich firewall-freundlicher, da nur ein Port in der Firewall geöffnet werden muss.

Protokoll Steuerungsport Datenport Firewall-Komplexität
FTP 21 20 (+ dynamische Ports) Hoch
FTPS 21 (+ SSL/TLS) 20 (+ dynamische Ports) Hoch
SFTP 22 22 (gleicher Kanal) Niedrig

In manchen Umgebungen konfigurieren Administratoren den SSH-Server auf einem anderen Port als 22, um automatisierte Angriffe zu erschweren. In diesem Fall muss der SFTP-Client entsprechend konfiguriert werden.

Authentifizierungsmethoden

SFTP unterstützt verschiedene Authentifizierungsverfahren, die auf dem SSH-Protokoll basieren. Du kannst je nach Sicherheitsanforderung und Infrastruktur die passende Methode wählen.

Passwort-Authentifizierung

Die einfachste Methode ist die klassische Kombination aus Benutzername und Passwort. Der Vorteil liegt in der einfachen Einrichtung, allerdings ist diese Methode anfälliger für Brute-Force-Angriffe als die Schlüssel-basierte Authentifizierung.

Public-Key-Authentifizierung

Bei dieser Methode generierst du ein Schlüsselpaar bestehend aus einem privaten und einem öffentlichen Schlüssel. Der öffentliche Schlüssel wird auf dem Server hinterlegt, der private Schlüssel verbleibt sicher auf deinem Client. Diese Methode gilt als sicherer, da kein Passwort über das Netzwerk übertragen wird.

# SSH-Schlüsselpaar generieren
ssh-keygen -t ed25519 -C "dein-kommentar"

# Öffentlichen Schlüssel auf Server kopieren
ssh-copy-id benutzer@server.example.com

# SFTP-Verbindung mit Schlüssel
sftp -i ~/.ssh/id_ed25519 benutzer@server.example.com

Multi-Faktor-Authentifizierung

Für erhöhte Sicherheitsanforderungen lässt sich SFTP mit Multi-Faktor-Authentifizierung (MFA) kombinieren. Dabei wird zusätzlich zum Passwort oder Schlüssel ein zweiter Faktor abgefragt, beispielsweise ein Einmalpasswort aus einer Authenticator-App.

Verschlüsselung und Sicherheit

SFTP verschlüsselt sowohl die Befehle als auch die übertragenen Daten. Das unterscheidet es grundlegend von klassischem FTP, bei dem Zugangsdaten und Dateiinhalte im Klartext übertragen werden. Die Verschlüsselung basiert auf dem SSH-Protokoll und nutzt moderne kryptografische Verfahren.

Die wichtigsten Sicherheitsmerkmale von SFTP sind:

  • AES-Verschlüsselung: Der Advanced Encryption Standard (typischerweise AES-256) schützt alle übertragenen Daten
  • SSH Message Authentication Code (MAC): Gewährleistet die Integrität der Datenpakete und erkennt Manipulationen
  • Host-Key-Verifizierung: Der Client prüft beim ersten Verbindungsaufbau den Fingerabdruck des Servers und warnt bei Änderungen
  • Perfect Forward Secrecy: Selbst wenn ein Schlüssel kompromittiert wird, bleiben frühere Sitzungen geschützt

SFTP vs. FTPS - der Unterschied

SFTP und FTPS werden oft verwechselt, sind aber grundlegend verschiedene Protokolle. FTPS (FTP Secure) ist eine Erweiterung des klassischen FTP-Protokolls um TLS/SSL-Verschlüsselung, während SFTP ein komplett eigenständiges Protokoll auf Basis von SSH ist.

Aspekt SFTP FTPS
Basis-Protokoll SSH FTP + TLS/SSL
Ports Nur Port 22 Mehrere Ports (21, 20, dynamische)
Zertifikate SSH-Schlüsselpaare X.509-Zertifikate
Firewall Einfach zu konfigurieren Komplexer durch mehrere Ports
Implementierung Einfacher Aufwendiger
Verbreitung Standard in Linux/Unix Häufig in Windows-Umgebungen

Für die meisten Anwendungsfälle ist SFTP die bessere Wahl, da es einfacher zu konfigurieren ist und nur einen Port benötigt. FTPS kann sinnvoll sein, wenn bereits eine FTP-Infrastruktur existiert oder spezielle Compliance-Anforderungen X.509-Zertifikate vorschreiben.

Praktische Anwendung

SFTP wird in vielen Szenarien eingesetzt, in denen Dateien sicher zwischen Systemen übertragen werden müssen. Typische Anwendungsfälle sind der Transfer von Backup-Dateien, der Austausch von Geschäftsdaten mit Partnern oder das Deployment von Webanwendungen auf Server.

Kommandozeilen-Beispiele

Die meisten Linux- und Unix-Systeme haben einen SFTP-Client vorinstalliert. Hier sind die wichtigsten Befehle für die tägliche Arbeit:

# Verbindung herstellen
sftp benutzer@server.example.com

# Datei herunterladen
sftp> get remote-datei.txt

# Datei hochladen
sftp> put lokale-datei.txt

# Verzeichnis wechseln (remote)
sftp> cd /var/www/html

# Verzeichnis wechseln (lokal)
sftp> lcd ~/Downloads

# Verzeichnisinhalt anzeigen
sftp> ls -la

# Verbindung beenden
sftp> exit

Grafische SFTP-Clients

Für die alltägliche Arbeit sind grafische Clients oft praktischer. Beliebte SFTP-Clients sind:

  • FileZilla: Kostenlos und plattformübergreifend (Windows, macOS, Linux)
  • WinSCP: Kostenlos für Windows mit vielen Zusatzfunktionen
  • Cyberduck: Kostenlos für macOS und Windows
  • Transmit: Kostenpflichtig für macOS, bekannt für gute Usability

SFTP in der IT-Praxis

Als Fachinformatiker für Systemintegration wirst du SFTP regelmäßig für die Serververwaltung und den sicheren Dateitransfer nutzen. Das Protokoll ist der De-facto-Standard für sichere Dateiübertragungen in Linux-Umgebungen und spielt auch in Windows-Server-Infrastrukturen eine zunehmende Rolle.

In der Anwendungsentwicklung begegnet dir SFTP beim automatisierten Deployment von Anwendungen, bei der Integration mit externen Systemen über Dateiübertragung oder beim Backup von Anwendungsdaten.

Quellen und weiterführende Links