Permitir tanto SFTP como SSH con directorio chroot

Permitir tanto SFTP como SSH con directorio chroot

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 /bincarpeta /liben el directorio chroot para asegurarme de que no faltaran comandos que pudieran estar causando que fallara. La observación /var/log/auth.logno arrojó resultados, ya que el único registro fue que el usuario cerró la conexión, incluso cuando LogLevel Debug2instalé /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 jailkitherramienta 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/passwddebe cambiarse de /usr/sbin/jk_lsha /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_keysarchivo

información relacionada