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
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
bashIn unserem Beispiel führt dies zur Ausgabe:
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
bashSchritt 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
bashGeben Sie dann folgende Zeilen ein:
Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
bashDadurch können Benutzer und Benutzerinnen der SFTP-Gruppe auf ihr Home-Verzeichnis über SFTP zugreifen.
- 100 % Enterprise-Hardware
- Minutengenaue Abrechnung
- Nur bei uns: Cloud-Funktionen
Schritt 4: SSH-Dienst neu starten
Im Anschluss an die Änderung der Konfigurationsdatei sollte der SSH-Dienst neu gestartet werden:
$ sudo systemctl restart sshd
bashSchritt 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
bashDer 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
bashSchritt 6: SFTP-Benutzerpasswort erstellen
Geben Sie ein sicheres Passwort für den SFTP-Benutzer mit dem Befehl passwd
ein:
$ passwd sftpuser
bashSchritt 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
bashDann wird die Eigentümerschaft mit chown
auf den Root-Benutzer festgelegt:
$ sudo chown root /srv/sftpuser
bashWeisen Sie der Gruppe Rechte zum Lesen und zum Ausführen zu:
$ sudo chmod g+rx /srv/sftpuser
bashDanach legen Sie ein Unterverzeichnis an und bestimmen sftpuser
als Eigentümer:
$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data
bashDadurch 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
bashWenn ein benutzerdefinierter Port verwendet wird, kann dies wie folgt spezifiziert werden:
$ sftp -P PORT ftpuser@SERVER-IP
bashDanach 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 /
bashDer 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/
bashSchritt 10: Dateien auf dem Ubuntu-SFTP-Server anzeigen
Dateien können Sie in der SFTP-Befehlszeile mit dem Kommando ls
auflisten:
ls /data/
bashHier sehen Sie, welche Daten sich auf dem SFTP-Server befinden:
Erfahren Sie außerdem in unserem Ratgeber, wie Sie einen Windows-SFTP-Server einrichten können.