
Estoy intentando configurar un usuario con acceso SFTP y acceso SSH limitado. Por lo tanto, hice chroot al usuario y luego lo configuré básicamente exactamente como se especifica eneste tutorial. Sin embargo, si bien puedo ingresar exitosamente al servidor mediante ssh, cuando intento conectarme a través de una conexión SFTP, simplemente dice Conexión fallida.
Investigación e intentos de solución
Intenté buscar algo que pueda explicar cómo hacer esto, pero solo pude encontrareste temaque no tuvo ninguna respuesta. Además, no pude encontrar ningún artículo en línea que mostrara cómo se podía hacer esto.
También intenté copiar toda la /bin
carpeta /lib
en el directorio chroot para asegurarme de que no faltaran comandos que pudieran estar causando que fallara. La observación /var/log/auth.log
no arrojó resultados, ya que el único registro fue que el usuario cerró la conexión, incluso cuando LogLevel Debug2
instalé /etc/ssh/sshd_config
. Intentar conectarme usando una conexión SCP en WinSCP me permite ver los archivos, sin embargo, no puedo copiar nada a mi disco local o viceversa.
Archivo de configuración SSHD (sección relevante):
Match User test_user
ChrootDirectory /home/test_user
Respuesta1
Finalmente encontré la jailkit
herramienta que está diseñada para automatizar el encarcelamiento de usuarios en lugar de hacerlo manualmente, como originalmente estaba intentando hacer.
Para configurar el directorio chroot, seguí los siguientes pasos
Instalación (en Ubuntu) Se puede encontrar la instalación desde la fuenteaquí
sudo apt install jailkit
Configuración del directorio
Puede encontrar una lista de varios paquetes a los que permitir el acceso en /etc/jailkit/jk_init.ini
. También instalé git de esta manera después de configurarlo.
sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp
Formato general a continuación
sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>
Encarcelar al usuario
sudo jk_jailuser -m -j /srv/test_user test_user
Cambiando de caparazón
Finalmente, el shell especificado en <chroot_directory>/etc/passwd
debe cambiarse de /usr/sbin/jk_lsh
a /bin/bash
. Tenga en cuenta que solo debería haber entradas para test_user, root y posiblemente otro inicio de sesión.
Desde allí, puede iniciar sesión mediante ssh o sftp/scp y acceder a todo como se esperaba. Tenga en cuenta que para iniciar sesión mediante una clave pública, deberá configurar el ~/.ssh/authorized_keys
archivo