Ubuntu ist eine sichere und zu­ver­läs­si­ge Plattform für die Ein­rich­tung eines SFTP-Servers. Die Linux-Dis­tri­bu­ti­on bietet in­te­grier­te Tools und Pakete, die Sie für SFTP nutzen können. In unserer Schritt-für-Schritt-Anleitung zeigen wir Ihnen, wie Sie einen Ubuntu-SFTP-Server für einen ver­schlüs­sel­ten Da­ten­trans­fer in­stal­lie­ren und kon­fi­gu­rie­ren.

Ubuntu-SFTP-Server: Das sind die Sys­tem­vor­aus­set­zun­gen

Im Vergleich FTP vs. SFTP ist das SFTP-Protokoll die deutlich bessere Wahl. Basierend auf FTP, verwendet SFTP kryp­to­gra­fi­sche Verfahren zur Da­ten­ver­schlüs­se­lung. Daher sind für die In­stal­la­ti­on zu­sätz­li­che Kom­po­nen­ten wie Secure Shell (SSH) er­for­der­lich. Für die Ein­rich­tung eines SFTP-Servers unter der aktuellen Ubuntu-Version 22.04 sollten folgende Sys­tem­vor­aus­set­zun­gen erfüllt sein:

  • Prozessor (CPU): 2 GHz (Dual-Core)
  • Ar­beits­spei­cher (RAM): 4 GB
  • Fest­plat­ten­spei­cher: abhängig von Da­ten­grö­ße
  • Be­triebs­sys­tem: Ubuntu, Benutzer mit Root-Rechten
  • Software-Paket: OpenSSH
  • In­ter­net­ver­bin­dung zum Down­loa­den von Paketen und Verbinden mit dem SFTP-Server
Tipp

Mit einem Secure FTP-Server von IONOS haben Sie Zugriff auf sicheres File-Hosting, inklusive re­gel­mä­ßi­gen Backups und 24/7-Support.

Schritt-für-Schritt-Anleitung: In­stal­la­ti­on eines Ubuntu-SFTP-Servers

Um einen FTP-Server ein­zu­rich­ten, der SFTP un­ter­stützt, sollten Sie zuerst kon­trol­lie­ren, ob OpenSSH in­stal­liert ist. Stan­dard­mä­ßig stehen die Pakete in Ubuntu bereits zur Verfügung. Sollte dies nicht der Fall sein, können Sie die Pakete aus dem of­fi­zi­el­len Re­po­si­to­ry beziehen.

Öffnen Sie das Terminal auf Ihrem Ubuntu-System und führen Sie die folgenden Befehle aus:

Schritt 1: OpenSSH-Pakete über­prü­fen

Mithilfe dieser Eingabe listen Sie alle in­stal­lier­ten Pakete auf und filtern dabei nach ssh:

$ dpkg -l | grep ssh
bash

In unserem Beispiel führt dies zur Ausgabe:

Bild: Terminal: Installierte OpenSSH-Pakete
Terminal: In­stal­lier­te OpenSSH-Pakete

Wird ein ii angezeigt, bedeutet dies, dass die Pakete in­stal­liert sind.

Schritt 2: SSH in­stal­lie­ren

Sollte OpenSSH nicht vorhanden sein, können Sie es mit dem Pa­ket­ma­na­ger APT in­stal­lie­ren:

$ sudo apt install ssh
bash

Schritt 3: SSHD-Kon­fi­gu­ra­ti­on ändern

Nach der In­stal­la­ti­on muss die Kon­fi­gu­ra­ti­ons­da­tei des SSH-Daemons angepasst werden. Sie können diese z. B. mit dem Nano-Editor aufrufen:

$ sudo nano /etc/ssh/sshd_config
bash

Geben Sie dann folgende Zeilen ein:

Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
bash

Dadurch können Benutzer und Be­nut­ze­rin­nen der SFTP-Gruppe auf ihr Home-Ver­zeich­nis über SFTP zugreifen.

Dedicated Server
De­di­zier­te Server mit mo­derns­ten Pro­zes­so­ren
  • 100 % En­ter­pri­se-Hardware
  • Kon­fi­gu­rier­ba­re Hardware-Aus­stat­tung
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren

Schritt 4: SSH-Dienst neu starten

Im Anschluss an die Änderung der Kon­fi­gu­ra­ti­ons­da­tei sollte der SSH-Dienst neu gestartet werden:

$ sudo systemctl restart sshd
bash

Schritt 5: SFTP-Benutzer und Gruppe erstellen

Im nächsten Schritt erstellen wir eine neue Gruppe sftpgroup und einen neuen Benutzer sftpuser, der aus Si­cher­heits­grün­den nur auf den Ubuntu-SFTP-Server und nicht den SSH-Dienst zugreifen kann.

$ sudo groupadd sftpgroup
bash

Der neue Nutzer wird mit der Option -G der SFTP-Gruppe zugeteilt. Durch die Option -d wird das Home-Ver­zeich­nis bestimmt und mit -s der Shell-Zugang geregelt.

$ sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser
bash

Schritt 6: SFTP-Be­nut­zer­pass­wort erstellen

Geben Sie ein sicheres Passwort für den SFTP-Benutzer mit dem Befehl passwd ein:

$ passwd sftpuser
bash

Schritt 7: Chroot ein­rich­ten

Durch die Er­stel­lung eines Chroot-Ver­zeich­nis­ses wird eine Sandbox für ab­lau­fen­de Prozesse ge­schaf­fen. Zuerst muss ein neuer Ordner angelegt werden:

$ mkdir -p /srv/sftpuser
bash

Dann wird die Ei­gen­tü­mer­schaft mit chown auf den Root-Benutzer fest­ge­legt:

$ sudo chown root /srv/sftpuser
bash

Weisen Sie der Gruppe Rechte zum Lesen und zum Ausführen zu:

$ sudo chmod g+rx /srv/sftpuser
bash

Danach legen Sie ein Un­ter­ver­zeich­nis an und bestimmen sftpuser als Ei­gen­tü­mer:

$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data
bash

Dadurch kann der SFTP-Benutzer bzw. die SFTP-Be­nut­ze­rin Dateien in das Un­ter­ver­zeich­nis „data“ hochladen, besitzt jedoch nur be­schränk­te Rechte im sftpuser-Ver­zeich­nis. Dort hat er oder sie zwar Le­se­rech­te, aber aus Si­cher­heits­grün­den keine Schreib­rech­te.

Schritt 8: Mit dem Ubuntu-SFTP-Server verbinden

Die Ver­bin­dung zum SFTP-Server kann entweder über die SFTP-Be­fehls­zei­le oder durch einen FTP-Client mit GUI her­ge­stellt werden. Im Terminal geben Sie das Kommando sftp, gefolgt vom Benutzer- und dem Hostnamen oder der IP-Adresse des SFTP-Servers ein.

$ sftp sftpuser@SERVER-IP
bash

Wenn ein be­nut­zer­de­fi­nier­ter Port verwendet wird, kann dies wie folgt spe­zi­fi­ziert werden:

$ sftp -P PORT ftpuser@SERVER-IP
bash

Danach werden Sie auf­ge­for­dert, das Passwort des SFTP-Nutzers bzw. der -Nutzerin ein­zu­ge­ben.

Schritt 9: Dateien auf den SFTP-Server hochladen

Dateien werden in SFTP über den Befehl put hoch­ge­la­den.

Probieren Sie, eine Datei in das Ver­zeich­nis / zu über­tra­gen:

put /path/to/file/on/local /
bash

Der Befehl sollte fehl­schla­gen, denn es handelt sich um das chroot-Ver­zeich­nis, für das der SFTP-Nutzer bzw. die SFTP-Nutzerin keine Schreib­rech­te besitzt.

Versuchen Sie es nun mit dem Ordner data:

put /path/to/file1/on/local1 /data/
bash

Schritt 10: Dateien auf dem Ubuntu-SFTP-Server anzeigen

Dateien können Sie in der SFTP-Be­fehls­zei­le mit dem Kommando ls auflisten:

ls /data/
bash

Hier sehen Sie, welche Daten sich auf dem SFTP-Server befinden:

Bild: Terminal: Liste der Dateien auf dem SFTP-Server
Terminal: Liste der Dateien auf dem SFTP-Server
Tipp

Erfahren Sie außerdem in unserem Ratgeber, wie Sie einen Windows-SFTP-Server ein­rich­ten können.

Zum Hauptmenü