Deutsch

Dateien per FileZilla (SFTP) auf einen Linux-VPS übertragen

3 min
VPS/VDS-Hosting

SFTP läuft über Ihre bestehende SSH-Verbindung, es braucht also weder zusätzliche Serversoftware noch einen weiteren Port. Auf einem VPS Linux Infrawire ist es der sicherste Weg, mit einem grafischen Client wie FileZilla eine Website hochzuladen oder Backups zu holen. Diese Anleitung behandelt Anmeldung per Passwort und Schlüssel, Dateirechte und einen auf SFTP beschränkten Benutzer.

📋 Voraussetzungen

  • Ein Linux-VPS (Ubuntu 24.04, Debian 12, AlmaLinux 9 oder Rocky 9) mit funktionierendem SSH auf Port 22.
  • Die VPS-IP und das Root-Passwort aus Ihrem Kundenbereich.
  • FileZilla Client auf Ihrem Rechner (der Client, nicht FileZilla Server).

1. Schnell per Passwort verbinden

Nutzen Sie für den ersten Test die Schnellverbindungsleiste oben in FileZilla:

  • Server: sftp://VPS_IP
  • Benutzername: USER
  • Passwort: Ihr Passwort
  • Port: 22

Bestätigen Sie beim ersten Mal den Host-Schlüssel. Das rechte Fenster zeigt den Dateibaum des Servers. Nehmen Sie lieber einen normalen Benutzer als root: Ein Fehlklick richtet dann weniger Schaden an.

Bash
adduser USER usermod -aG sudo USER

Auf AlmaLinux oder Rocky nutzen Sie useradd -m USER, passwd USER und usermod -aG wheel USER.

2. Mit SSH-Schlüssel anmelden

Schlüssel sind sicherer als Passwörter und lassen sich nicht durch Brute-Force erraten. Erzeugen Sie auf Ihrem Rechner ein Schlüsselpaar und kopieren Sie den öffentlichen Teil auf den Server.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

Öffnen Sie in FileZilla Bearbeiten > Einstellungen > Verbindung > SFTP > Schlüsseldatei hinzufügen und wählen Sie Ihren privaten Schlüssel (die Datei ohne .pub). FileZilla bietet eventuell an, ihn in sein eigenes Format zu konvertieren; stimmen Sie zu. Geben Sie den privaten Schlüssel nie weiter.

3. Verbindung im Servermanager speichern

  1. Öffnen Sie Datei > Servermanager und klicken Sie auf Neuer Server.
  2. Protokoll: SFTP - SSH File Transfer Protocol.
  3. Server: VPS_IP, Port: 22.
  4. Anmeldeart: Normal für ein Passwort oder Schlüsseldatei für einen Schlüssel.
  5. Benutzer: USER. Legen Sie im Reiter Erweitert das Standard-Remoteverzeichnis fest, zum Beispiel /var/www/example.com.
  6. Klicken Sie auf Verbinden. Der Eintrag bleibt für das nächste Mal gespeichert.

Speichern Sie keine Passwörter auf Rechnern, die Sie nicht kontrollieren.

4. Besitzer und Rechte der Webdateien setzen

Hochgeladene Dateien gehören oft dem falschen Benutzer, was zu 403- oder 500-Fehlern führt. Geben Sie das Web-Verzeichnis Ihrem Benutzer und lassen Sie den Webserver mitlesen.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

Auf AlmaLinux und Rocky heißt die Webserver-Gruppe apache statt www-data. Ordner, in die die Anwendung schreiben muss (Uploads, Cache), können mit der Webserver-Gruppe als Gruppenbesitzer auf 775 gesetzt werden. Verwenden Sie niemals chmod -R 777. In FileZilla geht es auch per Rechtsklick auf eine Datei und Dateiberechtigungen.

5. Optional: ein reiner SFTP-Benutzer in einem Ordner

Um einem Kunden Zugriff auf nur einen Ordner ohne Shell zu geben, nutzen Sie einen Chroot. Das Chroot-Verzeichnis selbst muss root gehören und darf für niemand sonst schreibbar sein, sonst verweigert sshd die Anmeldung.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

Fügen Sie diesen Block ans Ende von /etc/ssh/sshd_config an:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

Prüfen Sie die Syntax vor dem Neuladen und lassen Sie Ihre aktuelle SSH-Sitzung offen, bis eine neue Anmeldung funktioniert.

Bash
sshd -t systemctl reload ssh

Der Dienst heißt auf Ubuntu und Debian ssh, auf AlmaLinux und Rocky sshd. Der eingeschränkte Benutzer landet in /files und sieht sonst nichts.

Überprüfung

Testen Sie im Terminal, bevor Sie FileZilla verdächtigen:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

Laden Sie dann eine Datei mit FileZilla hoch und prüfen Sie den Besitzer mit ls -l /var/www/example.com.

Fehlerbehebung

  • Verbindung abgelehnt oder Zeitüberschreitung: Prüfen Sie, ob sshd läuft (systemctl status ssh), ob der Port in der Firewall offen ist und ob Sie SFTP statt FTP gewählt haben.
  • Permission denied (publickey): Der Schlüssel steht nicht in ~/.ssh/authorized_keys oder die Rechte stimmen nicht. Korrigieren Sie mit chmod 700 ~/.ssh und chmod 600 ~/.ssh/authorized_keys.
  • Chroot-Benutzer wird direkt nach der Anmeldung getrennt: Das Chroot-Verzeichnis gehört nicht root oder ist für die Gruppe schreibbar. Suchen Sie in journalctl -u ssh nach „bad ownership or modes for chroot directory“.
  • Upload nicht möglich, Zugriff auf Ordner verweigert: Der Benutzer besitzt das Ziel nicht. Führen Sie die Befehle chown und chmod aus Schritt 4 erneut aus.

✅ Sie können jetzt Dateien mit FileZilla sicher auf Ihren Linux-VPS übertragen.

Bleiben Sie über die neuesten Angebote, Rabatte und Sonderaktionen informiert.

Aktionen ansehen

Wir verwenden Cookies

Wir verwenden Analyse-Cookies, um Ihre Erfahrung auf unserer Website zu verbessern. Es werden keine Daten an Dritte verkauft. Mehr erfahren Sie in unserer Datenschutzerklärung.