In diesem Tutorial zeigen wir Ihnen, wie Sie einen SFTP-Server auf Ubuntu 22.04 Jammy Jellyfish einrichten.
FTP ist ein großartiges Protokoll für den Zugriff auf und die Übertragung von Dateien, aber es hat den Nachteil, dass es ein Klartextprotokoll ist . Mit anderen Worten, die Nutzung über eine Internetverbindung ist nicht sicher, da Ihre Zugangsdaten und Daten unverschlüsselt übertragen werden. Das „S“ in SFTP steht für „Secure“ und tunnelt das FTP-Protokoll durch SSH, wodurch die Verschlüsselung bereitgestellt wird, die zum Herstellen einer sicheren Verbindung erforderlich ist.
In diesem Tutorial lernen Sie:
- So installieren und konfigurieren Sie den SSH-Daemon
- So richten Sie ein SFTP-Benutzerkonto und eine Gruppe ein
- So stellen Sie eine Verbindung zum SFTP-Server über die GUI her
- So stellen Sie über die Befehlszeile eine Verbindung zum SFTP-Server her
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu 22.04 Jammy Jellyfish |
Software | SSH-Daemon |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
SSH-Daemon konfigurieren
- SFTP erfordert SSH. Wenn der SSH-Server also noch nicht auf Ihrem System installiert ist, installieren Sie ihn, indem Sie ein Befehlszeilenterminal öffnen und die folgenden Befehle ausführen:
$ sudo apt update $ sudo apt install ssh
- Sobald SSH installiert ist, müssen wir einige Änderungen an der SSHD-Konfigurationsdatei vornehmen. Verwenden Sie nano oder Ihren bevorzugten Texteditor, um es mit Root-Rechten zu öffnen:
$ sudo nano /etc/ssh/sshd_config
- Scrollen Sie zum Ende der Datei und fügen Sie ganz am Ende die folgenden 5 Zeilen hinzu:
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Die obigen Zeilen erlauben Benutzern im
sftp
Gruppe, über SFTP auf ihre Home-Verzeichnisse zuzugreifen, verweigert ihnen jedoch den normalen SSH-Zugriff, sodass sie niemals auf eine Shell zugreifen können. Nachdem Sie diese Zeilen eingefügt haben, speichern und schließen Sie die Konfigurationsdatei. - Führen Sie den folgenden Befehl aus, um den SSH-Dienst neu zu starten, damit diese neuen Änderungen wirksam werden:
$ sudo systemctl restart ssh
Wenn SSH richtig konfiguriert ist, können wir mit der Einrichtung eines SFTP-Kontos für einen Benutzer fortfahren.
SFTP-Benutzerkonto erstellen
Jetzt müssen wir Benutzerkonten für jeden erstellen, dem wir SFTP-Zugriff gewähren möchten.
- Erstellen Sie eine neue Benutzergruppe namens
sftp
. Alle unsere SFTP-Benutzer müssen dieser Gruppe angehören.
$ sudo addgroup sftp
- Erstellen Sie als Nächstes einen neuen Benutzer. Wir nennen unseren einfach
sftpuser
in diesem Beispiel, aber Sie können es benennen, was Sie wollen. Achten Sie auch darauf, diesen Benutzer zumsftp
hinzuzufügen Gruppe, die wir gerade erstellt haben.$ sudo useradd -m sftpuser -g sftp
- Legen Sie ein Passwort für den neu erstellten
sftpuser
fest . Sie müssen das neue Passwort zur Bestätigung zweimal eingeben.$ sudo passwd sftpuser
- Zu guter Letzt gewähren wir dem Benutzer vollen Zugriff auf sein eigenes Home-Verzeichnis, verweigern aber allen anderen Benutzern im System den Zugriff auf das Verzeichnis:
$ sudo chmod 700 /home/sftpuser/
Unsere SFTP-Konfiguration ist abgeschlossen und wir können uns jetzt anmelden, um sicherzustellen, dass alles richtig funktioniert.
Melden Sie sich über die Befehlszeile bei SFTP an
Sie können sich über SFTP entweder mit dem Hostnamen oder der IP-Adresse Ihres Systems anmelden. Um von demselben System aus zu testen, auf dem Sie gerade SFTP konfiguriert haben, verbinden Sie sich mit der Loopback-Adresse 127.0.0.1
wird gut funktionieren.
- Öffnen Sie ein Terminal und melden Sie sich mit
sftp
an Befehl und densftpuser
Konto (oder wie auch immer Sie sich entschieden haben, es für Ihr Konto zu verwenden). Sie müssen das Passwort eingeben, das wir im vorherigen Abschnitt für diesen Benutzer konfiguriert haben.$ sftp [email protected]
- Navigieren Sie zum Home-Verzeichnis des Benutzers, da dies der einzige Ort ist, an dem er Berechtigungen hat. Versuchen Sie hier, ein neues Verzeichnis zu erstellen, um zu bestätigen, dass alles wie vorgesehen funktioniert:
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
Melden Sie sich über die GUI bei SFTP an
Wenn Sie es vorziehen, eine GUI-Anwendung zu verwenden, um sich mit Ihrem SFTP-Server zu verbinden, stehen Ihnen viele Optionen zur Verfügung. Sie können Ihren bevorzugten SFTP-Client oder den standardmäßig in Ubuntu 22.04 integrierten Client verwenden – den Nautilus-Dateimanager auf GNOME.
- Öffnen Sie den Nautilus-Dateimanager im Anwendungsmenü.
- Klicken Sie auf „Andere Standorte“ und geben Sie
sftp://127.0.0.1
ein in das Feld „Mit Server verbinden“ unten im Fenster und klicken Sie auf „Verbinden“. - Geben Sie die zuvor eingerichteten Zugangsdaten des SFTP-Kontos ein und klicken Sie auf „Verbinden“.
- Nach einer erfolgreichen Verbindung können Sie Ihr Home-Verzeichnis öffnen und das zuvor erstellte Testverzeichnis sehen.
Abschlussgedanken
Im Artikel SFTP-Server haben wir gesehen, wie man einen SFTP-Server erstellt und sich anschließend unter Ubuntu 22.04 Jammy Jellyfish Linux bei ihm anmeldet. Wir haben auch behandelt, wie Sie die Befehlszeile und die Ubuntu-GUI verwenden, um sich mit dem FTP-Server zu verbinden.
In diesem Artikel haben wir gesehen, wie man das FTP-Protokoll sichert, indem man SFTP auf unserem System einrichtet. Wenn Sie die Anweisungen in diesem Handbuch befolgen, können Computer in Ihrem lokalen Netzwerk oder über das Internet sicher auf Ihr System zugreifen, um Dateien entweder über die Befehlszeile oder ihren bevorzugten SFTP-Client zu speichern und abzurufen.