Was ist FTP?

FTP steht für File Transfer Protocol — ein Protokoll, das 1971 entwickelt wurde, um Dateien zwischen Computern im Netzwerk zu übertragen. Es funktioniert nach dem Client-Server-Prinzip: Du installierst ein FTP-Programm (den Client) auf deinem Computer und verbindest dich mit dem FTP-Server deines Hosting-Anbieters.

FTP hat zwei Kanäle: einen Steuerungskanal (Commands) und einen Datenkanal (die eigentlichen Dateien). Beide unverschlüsselt.

Was ist SFTP?

SFTP steht für SSH File Transfer Protocol — und das ist die sicherere Variante. SFTP läuft über eine verschlüsselte SSH-Verbindung. Das bedeutet: Jegliche Kommunikation zwischen deinem Client und dem Server ist verschlüsselt, inklusive Login-Daten und Dateiinhalte.

SFTP ist technisch gesehen kein eigenes Protokoll, sondern eine Erweiterung von SSH (Secure Shell). SSH wurde ursprünglich für sichere Fern-Terminal-Verbindungen entwickelt; SFTP nutzt dieselbe sichere Infrastruktur für den Dateitransfer.

FTP vs. SFTP: Der direkte Vergleich

Kriterium FTP SFTP
Verschlüsselung Keine (Klartext) Vollständig via SSH
Port 21 (Kontrolle), variabel (Daten) 22 (SSH)
Login-Daten Sichtbar im Netzwerk Versendet via SSH-Key oder Passwort
Dateitransfer Klartext (abfangbar) Verschlüsselt
Firewall-Freundlichkeit Problematisch (passive/aktive Modi) Einfach (ein Port)
Verbindungsstabilität Probleme bei instabilen Verbindungen Stabil, unterstützt Resume
Hosting-Verbreitung Standard bei den meisten Anbietern Empfohlen, aber nicht immer默认 aktiv

FTP ist unsicher — nutze es nicht!

FTP überträgt deine Login-Daten und Dateiinhalte im Klartext. Jeder, der im selben Netzwerk sitzt (z.B. in einem Café, einem Büro, einem Shared Hosting), kann deine Zugangsdaten abfangen. Verwende FTP nur dann, wenn es absolut keine Alternative gibt — und selbst dann nur für nicht-vertrauliche Dateien.

Welche Zugangsdaten brauchst du?

Bevor du dich mit dem Server verbindest, brauchst du folgende Informationen — meistens im Hosting-Dashboard oder in der Willkommens-E-Mail deines Anbieters:

FTP-User vs. SSH-User

Manche Hosting-Anbieter trennen FTP- und SSH-Zugänge. FTP-Zugänge haben oft nur Zugriff auf das www- oder htdocs-Verzeichnis (sicherheitshalber). SSH-Zugänge haben oft Vollzugriff auf den Server. Prüfe im Dashboard, welche Zugänge du hast und was du brauchst.

FTP/SFTP-Client einrichten: Schritt für Schritt

Wir nutzen FileZilla als Beispiel — der beliebteste kostenlose FTP-Client. Das Vorgehen ist bei anderen Clients (Cyberduck, WinSCP, Transmit) ähnlich.

1

FileZilla herunterladen und installieren

Lade FileZilla von filezilla-project.org herunter — kostenlos für Windows, macOS und Linux.

2

Site Manager öffnen

Klick oben links auf das Ordner-Symbol (oder Strg+S / Cmd+S). Der Site Manager öffnet sich.

3

Neue Verbindung anlegen

Klick auf "Neue Seite". Trage ein:

  • Protokoll: SFTP - SSH File Transfer Protocol
  • Host: ftp.deinedomain.de (aus der Willkommens-E-Mail)
  • Port: 22 (leer lassen für FTP Standard 21)
  • Logon Type: Normal
  • User: Dein FTP/SFTP Username
  • Password: Dein Passwort
4

Verbinden

Klick auf "Verbinden". FileZilla versucht, eine SFTP-Verbindung herzustellen. Bei erstmaliger Verbindung fragt FileZilla, ob du den Server-Fingerprint akzeptieren willst — klick "Ja".

5

Dateien hochladen

Nach erfolgreicher Verbindung siehst du zwei Verzeichnis-Bereiche: links dein lokaler Computer, rechts der Server. Navigiere links zum gewünschten Ordner, rechts zum Zielordner auf dem Server. Dann per Drag & Drop oder Rechtsklick → "Hochladen".

SSH-Key statt Passwort (empfohlen)

Für noch mehr Sicherheit nutze SSH-Keys statt Passwörter. Ein SSH-Key ist ein kryptografisches Schlüsselpaar — ein öffentlicher, der auf dem Server hinterlegt wird, und ein privater, der nur auf deinem Computer liegt.

# Linux/macOS: SSH-Key generieren
ssh-keygen -t ed25519 -C "dein@email.de"
# Speichere unter ~/.ssh/id_ed25519 (kein Passwort oder sicheres Passwort)

# Den öffentlichen Key auf den Server kopieren
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@dein-server.de

Bei FileZilla nutzt du den Private Key dann im Site Manager unter "Logon Type: Key file" und wählst deine private Key-Datei aus.

FTPS — die verschlüsselte FTP-Alternative

Neben SFTP gibt es noch FTPS (FTP over TLS/SSL). Das ist FTP mit Verschlüsselung — ein anderes Protokoll, das auf dem alten FTP aufbaut. Es nutzt Port 21 und verschlüsselt die Verbindung mit TLS-Zertifikaten.

FTPS vs. SFTP: Der Unterschied

Eigenschaft SFTP FTPS (FTP over TLS)
Protokoll SSH-basiert (Port 22) FTP mit TLS (Port 21)
Verschlüsselung Ende-zu-Ende TLS — auch nur Control-Channel möglich
Firewall Port 22 — einfach Port 21 + dynamische Daten-Ports
Authentifizierung Passwort oder SSH-Key Passwort oder Client-Zertifikat

In der Praxis: SFTP ist fast immer die bessere Wahl. FTPS hat das Problem, dass der Datenkanal über separate, dynamische Ports läuft — was Firewall-Konfiguration kompliziert macht. SFTP nutzt einen einzigen Port und ist damit deutlich einfacher.

FTPS in FileZilla einrichten

Manche Anbieter bieten FTPS als Alternative. In FileZilla wählst du:

Beim ersten Verbinden fragt FileZilla, ob du das Server-Zertifikat akzeptieren willst. Klick auf "Ja", wenn das Zertifikat von einer bekannten CA stammt.

Explizites vs. implizites TLS

Explizites TLS: Verbindung startet unverschlüsselt auf Port 21, der Client fordert dann TLS an — das ist der Standard.

Implizites TLS: Verbindung ist sofort verschlüsselt — veraltet, nutze explizites TLS.

SFTP absichern: Hardening-Guide

SFTP ist sicherer als FTP — aber nur mit den richtigen Konfigurationen:

1. Root-Login deaktivieren

Log dich nie direkt als Root per SFTP ein. Erstelle einen normalen Benutzer für SFTP-Zugriff:

# Benutzer erstellen
sudo adduser sftp-user

# SSH-Key einrichten
mkdir ~/.ssh && chmod 700 ~/.ssh
# Public Key in ~/.ssh/authorized_keys

# Nur SFTP erlauben (kein Shell-Login)
sudo usermod -s /usr/sbin/nologin sftp-user

2. Chroot-Jail: Benutzer einsperren

Mit einem Chroot-Jail sehen SFTP-Benutzer nur ihr eigenes Verzeichnis — nicht das gesamte Dateisystem:

# /etc/ssh/sshd_config:
Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /srv/www
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

Der Benutzer kann nur auf /srv/www und seine Unterordner zugreifen.

3. SSH-Key statt Passwort

Passwörter können geknackt werden. SSH-Keys sind deutlich sicherer:

# Key generieren
ssh-keygen -t ed25519 -f ~/.ssh/sftp_key -C "sftp-access"

# Key auf Server kopieren
ssh-copy-id -i ~/.ssh/sftp_key.pub sftp-user@dein-server.de

# In FileZilla: Logon Type "Key file" → ~/.ssh/sftp_key

4. IP-Whitelist

Beschränke SFTP auf bestimmte IP-Adressen:

# /etc/hosts.allow
sshd: 203.0.113.0/24  # Erlaubte IPs

# /etc/hosts.deny
sshd: ALL

5. Fail2Ban aktivieren

Fail2Ban blockiert IPs nach wiederholten Fehlversuchen — reduziert Brute-Force drastisch:

# Installation (Debian/Ubuntu)
sudo apt install fail2ban

# Konfiguration
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600

6. Separate Benutzer: Ein Zugang pro Projekt

Statt eines通用-SFTP-Zugangs erstelle separate Benutzer mit separaten Verzeichnissen — das begrenzt den Schaden bei einer Kompromittierung:

SFTP vs. Cloud-Speicher: Wann was?

Anwendung SFTP Cloud-Speicher (R2, S3)
Website-Dateien Sehr gut Nein
Backup-Speicher Gut Exzellent
Versionierung Manuell Automatisch
Teilen mit Dritten Kompliziert Einfach (presigned URLs)
CDN-Integration Nein Ja (direkt)

Empfehlung: Website-Dateien → SFTP, große Backups und Medien → Cloud-Speicher (R2/S3-kompatibel), Team-Kollaboration → Nextcloud.

FileZilla: Fortgeschrittene Tipps

Synchronisiertes Browsing

Navigiere zum gewünschten Verzeichnis, dann Rechtsklick → "Synchronisiertes Browsing" — jetzt werden bei Navigation beide Seiten synchron gehalten. Perfekt für Website-Updates.

Remote-Bearbeitung

Datei in FileZilla doppelklicken → öffnet im lokalen Editor → bei Speichern automatisch Upload. Einstellungen → Dateitypen → Editor auswählen.

Bandbreiten-Limit

Bearbeiten → Einstellungen → Bandbreiten-Limit → z.B. 500 KB/s, damit die Website beim Upload nicht lahmliegt.

Datei-Vergleich

View → Compare Directories → zeigt farbcodierte Unterschiede: Grün = nur lokal, Rot = nur Remote, Orange = unterschiedlich.

SFTP über die Kommandozeile

Für schnelle Aufgaben ist die Kommandozeile effizienter:

# Verbindung herstellen
sftp user@server.de

# Navigation
pwd                    # Server-Verzeichnis
lpwd                   # Lokales Verzeichnis
cd /srv/www            # Server wechseln

# Dateien herunterladen
get datei.txt                       # Einzelne Datei
get -r verzeichnis/                 # Ganzes Verzeichnis

# Dateien hochladen
put ~/desktop/bild.png               # Einzelne Datei
put -r myproject/                   # Ganzes Verzeichnis

# Hilfe
help
exit

Rsync über SSH (besser für Backups)

Rsync über SSH synchronisiert nur geänderte Dateien — performanter als SFTP:

# Lokal zu Remote synchronisieren
rsync -avz --progress ~/local-dir/ user@server.de:/srv/www/backup/

# Mit Bandbreiten-Limit (max 1MB/s)
rsync -avz --bwlimit=1000 ~/local-dir/ user@server.de:/srv/www/backup/

# Mit SSH-Key
rsync -avz -e "ssh -i ~/.ssh/backup_key" ~/local-dir/ user@server.de:/srv/www/backup/

rsync vs. SFTP

Rsync: Für regelmäßige Backups, große Verzeichnisse, wenn nur Änderungen übertragen werden sollen.

SFTP: Für einzelne Dateien und interaktive Sitzungen.

SFTP-Fehler systematisch lösen

"Network error: Connection refused"

Lösung: Port 22 (SFTP) ist blockiert — prüfe ob der Anbieter SFTP anbietet, ob Firewall blockt: nc -zv server.de 22. Wenn das fehlschlägt, ist der Port blockiert — Alternativen: anderen Port nutzen oder FTP als Backup.

"Authentication failed"

Lösung: Prüfe Username (oft die Domain oder separates Konto), ob du Passwort oder Key nutzen musst. Bei SSH-Key: Public Key in ~/.ssh/authorized_keys korrekt? Berechtigungen: chmod 700 ~/.ssh und chmod 600 ~/.ssh/authorized_keys.

"Server unexpectedly closed network connection"

Lösung: Server down oder SSH-Dienst neu gestartet: sudo systemctl status sshd. Timeout erhöhen: Bearbeiten → Einstellungen → Verbindung → Timeout auf 120 setzen.

"Permission denied" (wiederholt)

Lösung: Fail2Ban blockiert deine IP — warte 10–60 Minuten oder prüfe von anderer IP. Bei eigenem Server: sudo fail2ban-client set sshd unbanip DEINE_IP.

SFTP-Produktivitäts-Tipps für Entwickler

SSH-Config für automatisierte Verbindungen

In ~/.ssh/config Verbindungen mit Kurznamen konfigurieren:

Host wunschdomain
    HostName server.wunschdomain.de
    User sftp-user
    Port 22
    IdentityFile ~/.ssh/wunschdomain_key
    ServerAliveInterval 60

Dann tippst du nur sftp wunschdomain statt des gesamten Connection-Strings.

CI/CD: Automatisches Deployment mit rsync

In GitHub Actions oder GitLab CI für automatische Uploads nach jedem Push:

- name: Deploy to Server
  run: |
    rsync -avz --delete
      -e "ssh -i $SSH_KEY"
      ./build/ user@server.de:/srv/www/

VS Code: Remote Explorer Extension

VS Code mit "SFTP" Extension (von Natizyskunk) ermöglicht direktes Editieren mit automatischem Upload bei Speichern. Konfiguration in .vscode/sftp.json.

FTP/SFTP für verschiedene Anwendungsfälle

WordPress: Dateien hochladen

Wenn du Probleme mit dem WordPress-Admin hast, kannst du Themes und Plugins auch manuell per FTP hochladen. Platziere die Dateien im entsprechenden Verzeichnis:

Backups hochladen

Du kannst Backups deiner Website oder Datenbank per SFTP auf den Server laden, um eine lokale Sicherungskopie zu haben. Das ist besonders nützlich, wenn du keine Backup-Funktion im Hosting-Paket hast.

Große Dateien übertragen

SFTP unterstützt das Resume von abgebrochenen Übertragungen. Wenn eine 2-GB-Datei beim Transfer abbricht, kannst du nahtlos dort weitermachen, wo du aufgehört hast. Bei FTP ist das deutlich komplizierter.

Häufige FTP/SFTP-Fehler und wie du sie löst

Fehler Ursache Lösung
Connection refused Port blockiert, falscher Port Port 22 für SFTP prüfen, Firewall-Regeln prüfen
Authentication failed Falsches Passwort, falscher Username Zugangsdaten aus Dashboard/Welcome-E-Mail prüfen
Connection timed out Firewall blockiert, falsche IP IP-Whitelist im Dashboard prüfen, ISP prüfen
Permission denied Kein Schreibrecht im Verzeichnis CHMOD prüfen (755 für Ordner, 644 für Dateien)
Server not found Falscher Hostname, DNS-Problem IP-Adresse statt Hostname verwenden, DNS prüfen

Empfohlene FTP/SFTP-Clients

FileZilla
Der Klassiker. Kostenlos, Open Source, Windows/macOS/Linux. Unterstützt FTP, SFTP, FTPS. Schnell und zuverlässig.
Windows · macOS · Linux
Cyberduck
Sehr beliebt auf macOS. Schöne UI, unterstützt SFTP, FTP, aber auch Cloud-Speicher (Dropbox, Google Drive, etc.). Kostenlos (Spenden-Modell).
macOS · Windows
WinSCP
Der beste SFTP-Client für Windows. Sehr mächtig, unterstützt auch SCP und S3. Ideal für technische Nutzer. Kostenlos.
Windows
Transmit
Premium-Client für macOS. Sehr schnell, tolle UI, Sync-Funktionen. Kostenpflichtig (ca. 45 €).
macOS

Unser Fazit

Nutze immer SFTP, nie FTP. Die Sicherheitsrisiken von FTP sind real und vermeidbar. Fast alle modernen Hosting-Anbieter unterstützen SFTP — wenn deiner es nicht tut, ist das ein schlechtes Zeichen.

Zusammengefasst:

Hosting mit SSH/SFTP-Zugang

Vergleiche Hosting-Anbieter, die sicheren SSH/SFTP-Zugang bieten — inklusive aller Features, Preise und Bewertungen.

Zum Hosting-Vergleich