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

[Ubuntu](https://www.ionos.de/digitalguide/server/knowhow/ubuntu-das-linux-system-fuer-jedermann/ "Ubuntu: das Linux-System für jedermann") 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](https://www.ionos.de/digitalguide/server/knowhow/sftp-ssh-file-transfer-protocol/ "SFTP (SSH File Transfer Protocol)") 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](https://www.ionos.de/digitalguide/server/knowhow/ftp-vs-sftp/) ist das SFTP-Protokoll die deutlich bessere Wahl. Basierend auf [FTP](https://www.ionos.de/digitalguide/server/knowhow/ftp-file-transfer-protocol/ "FTP - File Transfer Protocol"), verwendet SFTP kryptografische Verfahren zur Datenverschlüsselung. Daher sind für die Installation zusätzliche Komponenten wie [Secure Shell (SSH)](https://www.ionos.de/digitalguide/server/tools/secure-shell-ssh/ "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](https://www.ionos.de/hosting/ftp-server-mieten "Secure FTP-Server Hosting – IONOS") 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](https://www.ionos.de/digitalguide/server/konfiguration/ftp-server-einrichten/ "FTP-Server einrichten"), 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`:

```bash
$ dpkg -l | grep ssh
```

In unserem Beispiel führt dies zur Ausgabe:

[![Bild: Terminal: Installierte OpenSSH-Pakete](https://www.ionos.de/digitalguide/fileadmin/_processed_/a/5/csm_openssh-pakete_8085da1b0b.webp "Terminal: Installierte OpenSSH-Pakete")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/openssh-pakete.png) 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:

```bash
$ sudo apt install ssh
```

### 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:

```bash
$ sudo nano /etc/ssh/sshd_config
```

Geben Sie dann folgende Zeilen ein:

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

Dadurch können Benutzer und Benutzerinnen der SFTP-Gruppe auf ihr Home-Verzeichnis über SFTP zugreifen.

### Schritt 4: SSH-Dienst neu starten

Im Anschluss an die Änderung der Konfigurationsdatei sollte der SSH-Dienst neu gestartet werden:

```bash
$ sudo systemctl restart sshd
```

### 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.

```bash
$ sudo groupadd sftpgroup
```

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.

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

### Schritt 6: SFTP-Benutzerpasswort erstellen

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

```bash
$ passwd sftpuser
```

### 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:

```bash
$ mkdir -p /srv/sftpuser
```

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

```bash
$ sudo chown root /srv/sftpuser
```

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

```bash
$ sudo chmod g+rx /srv/sftpuser
```

Danach legen Sie ein Unterverzeichnis an und bestimmen `sftpuser` als Eigentümer:

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

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.

```bash
$ sftp sftpuser@SERVER-IP
```

Wenn ein benutzerdefinierter Port verwendet wird, kann dies wie folgt spezifiziert werden:

```bash
$ sftp -P PORT ftpuser@SERVER-IP
```

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:

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

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`:

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

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

Dateien können Sie in der SFTP-Befehlszeile mit dem Kommando `ls` auflisten:

```bash
ls /data/
```

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

[![Bild: Terminal: Liste der Dateien auf dem SFTP-Server](https://www.ionos.de/digitalguide/fileadmin/_processed_/a/c/csm_dateien-sftp-server_b79e77ae1c.webp "Terminal: Liste der Dateien auf dem SFTP-Server")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/dateien-sftp-server.png) Terminal: Liste der Dateien auf dem SFTP-Server  Tipp Erfahren Sie außerdem in unserem Ratgeber, wie Sie einen [Windows-SFTP-Server einrichten](https://www.ionos.de/digitalguide/server/konfiguration/windows-sftp-server-einrichten/) können.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-sftp-server-einrichten/](https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-sftp-server-einrichten/) for AI/LLM consumption.