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 .