aus HisWiki
3.10.3.2.4 Einrichtung von SFTP

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 14.04 LTS):

In der /etc/ssh/sshd_config folgende Zeilen hinzufügen:

Subsystem sftp internal-sftp

UsePAM yes

X11Forwarding yes

Match Group sftponly

    AllowAgentForwarding no

    AllowTcpForwarding no

    AuthorizedKeysFile /home/%u/.ssh/authorized_keys

    ChrootDirectory /home/%u

    ForceCommand internal-sftp -l INFO -u 0027

    X11Forwarding no

Dann legen Sie die Gruppe "sftponly" an und dann den Unix-User an, und geben ihm die Gruppe "sftponly":

useradd -m $KENNUNG

usermod -aG sftponly $KENNUNG

usermod -s /sbin/nologin $KENNUNG

usermod -d "/" $KENNUNG

Dann vergeben Sie mit

passwd $KENNUNG

ein Passwort, und legen die Verzeichnisse an:

mkdir /home/$KENNUNG

mkdir /home/$KENNUNG/.ssh

chown -R $KENNUNG:<<Gruppe>> /home/$KENNUNG/*

chown -R $KENNUNG:<<Gruppe>> /home/$KENNUNG/.ssh

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

sftp $KENNUNG@<<Host>>

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

Für das Kopieren der Rohdaten selbst werden in Zukunft (Stand Kernmodul 4.3) im Kopierscript " <<modulname>>_copy.x " auch sftp-Kommandos aufgenommen. Sie müssen nur in der ENV-Datei die Variable

COPY_METHOD=sftp

setzen.

Das Kopieren mit sftp klappt übrigens auch unter Windows z.B. mit dem Programm winscp .