Zurück zum Blog
Mai 23, 2026Anleitungen

SFTP für sicheren Dateitransfer einrichten

SFTP über OpenSSH: Benutzer, Chroot und Verbindung mit FileZilla oder WinSCP.

SFTP für sicheren Dateitransfer einrichten

SFTP überträgt Dateien verschlüsselt über SSH ohne separaten FTP-Daemon. Auf Linux-VPS ist SFTP in OpenSSH integriert.

SFTP mit eigenem Benutzer

Benutzer nur für Datei-Uploads anlegen:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Test:
sftp sftpuser@YOUR_VPS_IP

# FileZilla: Protokoll SFTP, Port 22

Chroot (empfohlen)

Benutzer auf ein Verzeichnis beschränken:

bash
sudo mkdir -p /var/sftp/sftpuser/upload
sudo chown root:root /var/sftp/sftpuser
sudo chmod 755 /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser/upload

sudo nano /etc/ssh/sshd_config

Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

Vom Desktop verbinden

Gängige Clients unterstützen SFTP:

  • FileZilla — Host: sftp://IP, Port 22
  • WinSCP — Protokoll SFTP
  • macOS — Mit Server verbinden: sftp://user@IP
  • Linux: sftp user@IP oder scp
  • VS Code — Remote-SSH-Erweiterung

Sicherheits-Checkliste

  • SSH-Schlüssel statt Passwörter für SFTP
  • Root-SFTP nicht an Dritte weitergeben
  • Passwort-Login für root deaktivieren
  • Chroot für reine Upload-Konten
  • Fail2ban auf SSH-Port
  • Port 22 in Firewall nur von vertrauenswürdigen IPs

Tipps

  • SFTP ist nicht FTP — Port 21 nur bei Legacy-FTP
  • WordPress: Deployment per SSH/rsync
  • rsync über SSH für große Migrationen
  • Bei Upload-Fehlern Rechte prüfen (755/644)
  • Nach sshd_config-Änderung zweite SSH-Session offen lassen