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:
- Host / Server: z.B.
ftp.deinedomain.deoder123.456.78.90 - Port: 21 (FTP) oder 22 (SFTP)
- Username: Dein FTP/SFTP-Benutzername
- Passwort: Dein FTP/SFTP-Passwort
- Startverzeichnis: Oft
/htdocs,/public_htmloder/www— das ist das Root-Verzeichnis deiner Website
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.
FileZilla herunterladen und installieren
Lade FileZilla von filezilla-project.org herunter — kostenlos für Windows, macOS und Linux.
Site Manager öffnen
Klick oben links auf das Ordner-Symbol (oder Strg+S / Cmd+S). Der Site Manager öffnet sich.
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
Verbinden
Klick auf "Verbinden". FileZilla versucht, eine SFTP-Verbindung herzustellen. Bei erstmaliger Verbindung fragt FileZilla, ob du den Server-Fingerprint akzeptieren willst — klick "Ja".
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:
- Protokoll: FTP über TLS (explizit)
- Port: 21
- Verschlüsselung: "Explizites FTP über TLS verwenden"
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-blog→ nur/var/www/blog/sftp-shop→ nur/var/www/shop/sftp-admin→ voller Zugriff (nur für dich)
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:
- Theme:
/wp-content/themes/dein-theme/ - Plugin:
/wp-content/plugins/dein-plugin/ - Medien:
/wp-content/uploads/
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
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:
- SFTP nutzen — immer, ohne Ausnahme
- SSH-Keys statt Passwörter (langfristig)
- FileZilla ist ein guter Startpunkt — kostenlos und vollständig
- CHMOD-Rechte richtig setzen: Ordner 755, Dateien 644
- Niemals FTP für sensible Daten (Passwörter, Kundendaten, Backups)
Hosting mit SSH/SFTP-Zugang
Vergleiche Hosting-Anbieter, die sicheren SSH/SFTP-Zugang bieten — inklusive aller Features, Preise und Bewertungen.
Zum Hosting-Vergleich