SuperX

KontaktMail für InfosSuchenLogin

Einrichtung von SFTP (Server)

Beim Push-Verfahren wird, wenn mit scp oder rsync kopiert wird, eine Login-Shell vorausgesetzt. Wenn dies aus Sicherheitsgründen nicht gewünscht ist bzw. wg. Einsatz von Windows nicht möglich ist, können Sie auch sftp nutzen, dies wird in modernen ssh-Servern mitgeliefert und bietet ebenfalls verschlüsselten Datentransfer. Zur Einrichtung des Servers:

Der SSH-Dienst wird wie folgt konfiguriert (am Beispiel Ubuntu Linux 22.04 LTS) mit dem SFTP-Verzeichnis /home/sftp/-benutzername:

In der Datei /etc/ssh/sshd_config die Zeile auskommentieren:

#Subsystem      sftp    /usr/lib/openssh/sftp-server

und stattdessen:

Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no

Dann legen Sie die Gruppe "sftponly" an:

groupadd sftponly
und dann den Unix-User an, und geben ihm die Gruppe "sftponly". Hier ein Script:
#!/bin/sh
SFTPUSERNAME=$1
mkdir -p /home/sftp/$SFTPUSERNAME
useradd -b /home/sftp -s /bin/false -G sftponly $SFTPUSERNAME
chown root:root /home/sftp/$SFTPUSERNAME
chmod 755 /home/sftp/$SFTPUSERNAME
mkdir -p /home/sftp/$SFTPUSERNAME/incoming
chown $SFTPUSERNAME:sftponly /home/sftp/$SFTPUSERNAME/incoming

Danach legen Sie mit

passwd $SFTPUSERNAME

ein Passwort fest.

Der User kann sich dann nicht mehr mit ssh einloggen, nur noch mit sftp, und landet beim Login in /home/$KENNUNG, in einem "chroot-Käfig", und der User kann mit SFTP in den Ordner "incoming" schreiben. Zum Testen geben Sie ein:

sftp $KENNUNG@-Host-

Wenn beim SFTP Login die Meldung kommt:

client_loop: send disconnect: Broken pipe

müssen Sie darauf achten dass das Home-Verzeichnis des Users nicht dem User gehört, sondern root.

Wenn der Login klappt, können Sie nach dem oben beschriebenen Verfahren die Passworteingabe durch PublicKey-Authentifizierung ersetzen.