Ubuntu-SFTP-Server installieren – Schritt für Schritt

Ubuntu ist eine sichere und zuverlässige Plattform für die Einrichtung eines SFTP-Servers. Die Linux-Distribution bietet integrierte 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 verschlüsselten Datentransfer installieren und konfigurieren.

Ubuntu-SFTP-Server: Das sind die Systemvoraussetzungen

Im Vergleich FTP vs. SFTP ist das SFTP-Protokoll die deutlich bessere Wahl. Basierend auf FTP, verwendet SFTP kryptografische Verfahren zur Datenverschlüsselung. Daher sind für die Installation zusätzliche Komponenten wie Secure Shell (SSH) erforderlich. Für die Einrichtung eines SFTP-Servers unter der aktuellen Ubuntu-Version 22.04 sollten folgende Systemvoraussetzungen erfüllt sein:

  • Prozessor (CPU): 2 GHz (Dual-Core)
  • Arbeitsspeicher (RAM): 4 GB
  • Festplattenspeicher: abhängig von Datengröße
  • Betriebssystem: Ubuntu, Benutzer mit Root-Rechten
  • Software-Paket: OpenSSH
  • Internetverbindung zum Downloaden von Paketen und Verbinden mit dem SFTP-Server
Tipp

Mit einem Secure FTP-Server von IONOS haben Sie Zugriff auf sicheres File-Hosting, inklusive regelmäßigen Backups und 24/7-Support.

Schritt-für-Schritt-Anleitung: Installation eines Ubuntu-SFTP-Servers

Um einen FTP-Server einzurichten, der SFTP unterstützt, sollten Sie zuerst kontrollieren, ob OpenSSH installiert ist. Standardmäßig stehen die Pakete in Ubuntu bereits zur Verfügung. Sollte dies nicht der Fall sein, können Sie die Pakete aus dem offiziellen Repository beziehen.

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

Schritt 1: OpenSSH-Pakete überprüfen

Mithilfe dieser Eingabe listen Sie alle installierten Pakete auf und filtern dabei nach ssh:

$ dpkg -l | grep ssh
bash

In unserem Beispiel führt dies zur Ausgabe:

Terminal: Installierte OpenSSH-Pakete
Terminal: Installierte OpenSSH-Pakete

Wird ein ii angezeigt, bedeutet dies, dass die Pakete installiert sind.

Schritt 2: SSH installieren

Sollte OpenSSH nicht vorhanden sein, können Sie es mit dem Paketmanager APT installieren:

$ sudo apt install ssh
bash

Schritt 3: SSHD-Konfiguration ändern

Nach der Installation muss die Konfigurationsdatei 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 Benutzerinnen der SFTP-Gruppe auf ihr Home-Verzeichnis über SFTP zugreifen.

Dedicated Server von IONOS

Hardware trifft Cloud: Dedicated Server mit Cloud-Integration und mit minutengenauer Abrechnung, inklusive persönlichem Berater!

24/7 Support
Unbegrenzter Traffic
SSL Zertifikat

Schritt 4: SSH-Dienst neu starten

Im Anschluss an die Änderung der Konfigurationsdatei 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 Sicherheitsgründen 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-Verzeichnis bestimmt und mit -s der Shell-Zugang geregelt.

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

Schritt 6: SFTP-Benutzerpasswort erstellen

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

$ passwd sftpuser
bash

Schritt 7: Chroot einrichten

Durch die Erstellung eines Chroot-Verzeichnisses wird eine Sandbox für ablaufende Prozesse geschaffen. Zuerst muss ein neuer Ordner angelegt werden:

$ mkdir -p /srv/sftpuser
bash

Dann wird die Eigentümerschaft mit chown auf den Root-Benutzer festgelegt:

$ 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 Unterverzeichnis an und bestimmen sftpuser als Eigentümer:

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

Dadurch kann der SFTP-Benutzer bzw. die SFTP-Benutzerin Dateien in das Unterverzeichnis „data“ hochladen, besitzt jedoch nur beschränkte Rechte im sftpuser-Verzeichnis. Dort hat er oder sie zwar Leserechte, aber aus Sicherheitsgründen keine Schreibrechte.

Schritt 8: Mit dem Ubuntu-SFTP-Server verbinden

Die Verbindung zum SFTP-Server kann entweder über die SFTP-Befehlszeile oder durch einen FTP-Client mit GUI hergestellt 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 benutzerdefinierter Port verwendet wird, kann dies wie folgt spezifiziert werden:

$ sftp -P PORT ftpuser@SERVER-IP
bash

Danach werden Sie aufgefordert, das Passwort des SFTP-Nutzers bzw. der -Nutzerin einzugeben.

Schritt 9: Dateien auf den SFTP-Server hochladen

Dateien werden in SFTP über den Befehl put hochgeladen.

Probieren Sie, eine Datei in das Verzeichnis / zu übertragen:

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

Der Befehl sollte fehlschlagen, denn es handelt sich um das chroot-Verzeichnis, für das der SFTP-Nutzer bzw. die SFTP-Nutzerin keine Schreibrechte 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-Befehlszeile mit dem Kommando ls auflisten:

ls /data/
bash

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

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 einrichten können.