
Intento restringir el acceso a SFTP solo con una cuenta de usuario. Después de iniciar sesión, se deben ejecutar algunos comandos. Por lo tanto, inserté forcecommmand en mi sshd_config:
Match group stream
#ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand sudo /etc/mountsftp.sh
#ForceCommand internal-sftp
Esto funciona bien y mi comando Script:
#!/bin/bash
now=$(date +"%T,%D")
echo "Login : $now" >> /login.log
sshfs usrl@server:/usbshare1-2 /media/pp -o reconnect -o allow_other -o workaround=all
mount --bind /media/pp/Serien /home/stream/Serien
J=$HOME
#
#exit by calling a shell to open for the ssh session
#internal-sftp
#cp -v /usr/lib/openssh/sftp-server $J/bin/
chroot $J /usr/lib/openssh/sftp-server
es ejecutado. Pero después de CHROOT no es posible iniciar el servidor sftp porque no se encuentra después de chroot. Pero necesito Chroot y este servidor SFTP. ¿Hay alguna forma de lograr esto?
PD: Autofs para el montaje no es una opción, porque todo se ejecuta en un servidor virtual sin los módulos Kernel necesarios.
Respuesta1
Copie el sftp-server
binario y todas sus dependencias ( ldd /usr/lib/openssh/sftp-server
) al chroot y podrá ejecutarlo.