SFTP Anleitung · 6 min read · Sep 24, 2025
So installieren und verwenden Sie SFTP auf Linux-Servern

SFTP oder SSH File Transfer Protocol ist eine Methode zum sicheren Übertragen von Daten zwischen zwei Computern und mehr. Es ist FTP, das über dem SSH-Protokoll läuft und dessen Sicherheit nutzt und die Authentifizierung vollständig unterstützt.
Heute wird empfohlen, SFTP anstelle des veralteten FTP- oder FTP/S-Protokolls zu verwenden. SFTP ist standardmäßig sicher, da SSH so funktioniert. Aus sicherheitstechnischer Sicht schützt SFTP auch vor Passwort-Sniffing und Man-in-the-Middle-Angriffen (MiTM).
Genau wie SSH schützt SFTP die Datenintegrität durch Verschlüsselung und kryptografische Hash-Funktionen. Es unterstützt auch mehrere sichere Authentifizierungsmethoden, einschließlich Passwort- und schlüsselbasierter Authentifizierung. Außerdem reduziert es die offenen Ports des Servers zum externen Netzwerk, da es über denselben Port wie das SSH-Protokoll läuft.
Voraussetzungen
In diesem Leitfaden lernen Sie, wie Sie einen SFTP-Server auf einem Linux-System einrichten. Außerdem lernen Sie die grundlegenden Befehle des SFTP-Clients.
Unten ist die aktuelle Umgebung für die Implementierung:
- Ein Linux-Server - Sie können Debian, Ubuntu, CentOS, Fedora, Rocky oder eine andere Linux-Distribution verwenden.
- Stellen Sie sicher, dass die OpenSSH-Pakete auf Ihrem Linux-System verfügbar sind.
- SFTP-Client - SFTP-Befehlszeile oder ein beliebiger GUI-Client, wie Sie es bevorzugen.
Überprüfen Sie die OpenSSH-Pakete
Um einen SFTP-Server einzurichten, müssen die OpenSSH-Pakete auf Ihrem Linux-System installiert sein. Fast alle Linux-Distributionsserver haben die OpenSSH-Pakete standardmäßig installiert. Falls Sie das OpenSSH-Paket jedoch nicht auf Ihrem System haben, können Sie es aus dem offiziellen Repository installieren.
- Um sicherzustellen, dass die OpenSSH-Pakete auf Ihrem Linux-System installiert sind, verwenden Sie den folgenden Befehl.
Für Debian- oder Ubuntu-Server können Sie den folgenden dpkg-Befehl verwenden.
dpkg -l | grep sshUnten ist die Ausgabe von unserem Debian-System.
ii libssh2-1:amd64 1.9.0-2 amd64 SSH2-Client-Bibliothek
ii openssh-client 1:8.4p1-5 amd64 sicherer Shell (SSH)-Client, für sicheren Zugriff auf Remote-Maschinen
ii openssh-server 1:8.4p1-5 amd64 sicherer Shell (SSH)-Server, für sicheren Zugriff von Remote-Maschinen
ii openssh-sftp-server 1:8.4p1-5 amd64 sicherer Shell (SSH) SFTP-Servermodul, für SFTP-Zugriff von Remote-MaschinenDie erste Spalte ‘ ii ‘ bedeutet, dass das Paket installiert ist. Das Paket ‘ openssh-sftp-server ‘ ist auf dem Debian/Ubuntu-System installiert.
Sie können den rpm-Befehl unten für RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux-Benutzer verwenden.
rpm -qa | grep sshGruppe und Benutzer erstellen
In diesem Schritt erstellen Sie eine neue Gruppe und einen Benutzer für den SFTP-Server. Benutzer innerhalb dieser Gruppe dürfen auf den SFTP-Server zugreifen. Aus Sicherheitsgründen können SFTP-Benutzer nicht auf den SSH-Dienst zugreifen; sie können nur auf den SFTP-Server zugreifen.
- Führen Sie den folgenden Befehl aus, um eine neue Gruppe ‘ sftpgroup ‘ zu erstellen.
sudo groupadd sftpgroup- Erstellen Sie einen neuen Benutzer ‘ sftpuser ‘ mit dem folgenden Befehl.
sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuserDetaillierte Optionen:
- -G: fügt den Benutzer automatisch zur Gruppe ‘ sftpgroup ‘ hinzu.
- -d: gibt das Home-Verzeichnis für den neuen Benutzer an.
- -s: setzt den Standard für den neuen Benutzer auf ‘ /sbin/nologin ‘, was bedeutet, dass der Benutzer nicht auf den SSH-Server zugreifen kann.
- Erstellen Sie als Nächstes das Passwort für den Benutzer ‘ sftpuser ‘ mit dem folgenden Befehl.
passwd sftpuserGeben Sie Ihr starkes Passwort ein und wiederholen Sie es, und drücken Sie dann ‘ Enter ‘, um zu bestätigen.

Um weitere Benutzer hinzuzufügen, wiederholen Sie die Schritte Nummer 2 und 3, und am wichtigsten ist, dass alle SFTP-Benutzer in der Gruppe ‘ sftpgroup ‘ ohne Shell-Zugriff über SSH sein müssen.
Chroot Jail-Verzeichnis einrichten
Nachdem Sie eine neue Gruppe und einen Benutzer erstellt haben, müssen Sie das Chroot-Verzeichnis für SFTP-Benutzer erstellen und konfigurieren.
- Für den Benutzer ‘sftpuser’ wird das neue Home-Verzeichnis im ‘/srv/sftpuser’ sein. Führen Sie den folgenden Befehl aus, um es zu erstellen.
mkdir -p /srv/sftpuser- Um Chroot für den Benutzer ‘ sftpuser ‘ einzurichten, müssen Sie den Besitz des Verzeichnisses auf den Benutzer root ändern, aber die Gruppe zum Lesen und Ausführen ohne Schreibzugriff belassen.
Ändern Sie den Besitz des Verzeichnisses auf den Benutzer ‘root’ mit dem folgenden Befehl.
sudo chown root /srv/sftpuserGeben Sie der Gruppe die Berechtigung zum Lesen und Ausführen, jedoch nicht zum Schreiben.
sudo chmod g+rx /srv/sftpuser- Erstellen Sie als Nächstes ein neues ‘data’-Verzeichnis im Verzeichnis ‘ /srv/sftpuser ‘ und ändern Sie den Besitz dieses ‘ data ‘ Verzeichnisses auf den Benutzer ‘ sftpuser ‘.
mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data
Bisher die folgenden Konfigurationsdetails für das SFTP-Benutzerdirectory.
- Das Verzeichnis ‘ /srv/sftpuser ‘ ist das Standard-Home-Verzeichnis.
- Der Benutzer ‘ sftpuser ‘ kann nicht in das Verzeichnis ‘ /srv/sftpuser ‘ schreiben, kann jedoch innerhalb dieses Verzeichnisses lesen.
- Der Benutzer ‘ sftpuser ‘ kann Dateien auf den SFTP-Server im Verzeichnis ‘ /srv/sftpuser/data ‘ hochladen.
SFTP auf dem SSH-Server aktivieren
Um den SFTP-Server auf dem OpenSSH zu aktivieren, müssen Sie die SSH-Konfiguration ‘/etc/ssh/sshd_config’ bearbeiten.
- Bearbeiten Sie die SSH-Konfiguration ‘ /etc/ssh/sshd_config ‘ mit nano oder vim.
sudo nano /etc/ssh/sshd_config- Kommentieren Sie die folgende Konfiguration aus, um die eigenständige ‘ sftp-server ‘ Funktion zu deaktivieren.
#Subsystem sftp /usr/lib/openssh/sftp-server- Fügen Sie die folgende Konfiguration am Ende der Zeile ein.
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftpSpeichern Sie die Konfiguration und beenden Sie.
Detaillierte Konfiguration:
- Anstelle der Verwendung des Unterprozesses ‘ sftp-server ‘ verwenden wir den ‘ internal-sftp ‘.
- Der SFTP-Server ist für die Gruppe ‘ sftpgroup ‘ aktiviert.
- Um eine neue Konfiguration anzuwenden, starten Sie den SSH-Dienst mit dem folgenden Befehl neu.
sudo systemctl restart sshdDer SFTP-Server ist bereit und zugänglich und läuft über denselben Port wie der SSH-Dienst.
Zugriff auf den SFTP-Server
Auf der Client-Seite verwenden wir die SFTP-Befehlszeile, die standardmäßig auf den meisten Linux-Distributionen installiert ist. Sie können jedoch auch einen anderen Befehlszeilen-Client oder einen GUI-FTP-Client wie FileZilla, Cyberduck usw. verwenden.
- Um eine Verbindung zum SFTP-Server herzustellen, führen Sie den SFTP-Befehl wie folgt aus.
sftp ftpuser@SERVER-IPWenn Ihr SFTP- und/oder SSH-Server auf einem benutzerdefinierten Port läuft, können Sie den SFTP-Befehl wie folgt verwenden.
sftp -P PORT ftpuser@SERVER-IPGeben Sie das Passwort für den ‘ sftpuser ‘ ein.
- Sobald Sie mit dem SFTP-Server verbunden sind, führen Sie den folgenden Befehl aus.
Zeigen Sie das aktuelle Arbeitsverzeichnis an und listen Sie alle verfügbaren Dateien und Verzeichnisse auf.
pwd
ls
- Laden Sie eine lokale Datei in das SFTP-Verzeichnis auf dem Verzeichnis ‘/ ‘, was zu ‘ Zugriff verweigert ‘ führen wird, da es sich um das Chroot-Verzeichnis handelt.
put /path/to/file/on/local /- Laden Sie eine lokale Datei in das Verzeichnis ‘ /data/ ‘ auf dem SFTP-Server hoch. Wenn Ihre Konfiguration korrekt ist, wird Ihre Datei in das Verzeichnis ‘ /data/ ‘ hochgeladen.
put /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/
- Überprüfen Sie nun die verfügbaren Dateien im Verzeichnis ‘ /data ‘ mit dem folgenden Befehl.
ls /data/Und Sie werden Ihre Datei sehen, die auf den SFTP-Server hochgeladen wurde.
Fazit
Herzlichen Glückwunsch! Sie haben erfolgreich den SFTP-Server auf dem Linux-System konfiguriert. Diese Art der Konfiguration kann auf den meisten Linux-Systemen mit installiertem OpenSSH angewendet werden. Außerdem haben Sie gelernt, wie Sie das Chroot-Verzeichnis für SFTP-Benutzer einrichten und die grundlegenden SFTP-Client-Befehle kennenlernen.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.