No se puede hacer chroot a un usuario

No se puede hacer chroot a un usuario

Mi servidor ssh ha estado funcionando a las mil maravillas durante 4 años, así que solo quiero agregar un usuario + hacerle chroot a una carpeta específica.

> useradd -m -c /home/thomas -s /bin/sh thomas
> passwd thomas
> chmod 755 /home/thomas
> chown root: /home/thomas
> service ssh restart

Cuando hago esto, yopoderMe conecto sshy mi sftpconexión funciona. El problema es que quiero hacer chroot a una carpeta específica.

> vim /etc/ssh/sshd_config

Agregue al final del archivo:

Match user thomas
    ChrootDirectory /home/%u

Cuando solo agrego esto, esto no debería cambiar nada, ¿verdad? La configuración debería ser la misma y aún debería poder conectarme o usar sftp... así que reinicio service ssh restarty ya no puedo conectarme con sftp.

Por si acaso:

root@xx:/etc/nginx/sites-enabled# /usr/sbin/sshd -v
sshd: illegal option -- v
OpenSSH_6.0p1 Debian-4+deb7u6, OpenSSL 1.0.1t  3 May 2016
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
root@xx:/etc/nginx/sites-enabled#

¿Qué estoy haciendo mal?

Respuesta1

El sshd_configmanual dice que

Debe ChrootDirectorycontener los archivos y directorios necesarios para soportar la sesión del usuario. Para una sesión interactiva , esto requiere al menos un shell, normalmente , sh(1)y /devnodos básicos como null(4),,,, y dispositivos. Para las sesiones de transferencia de archivos que utilizan SFTP, no es necesaria ninguna configuración adicional del entorno si se utiliza el servidor sftp en proceso, aunque las sesiones que utilizan el registro pueden requerir estar dentro del directorio chroot en algunos sistemas operativos (consulte para obtener más detalles).zero(4)stdin(4)stdout(4)stderr(4)tty(4)/dev/logsftp-server(8)

Debe crear el devdirectorio y luego copiar el /dev/MAKEDEVscript allí. Usando el script, cree los archivos de dispositivo necesarios.

Para usuarios interactivos, también deben instalar los binarios necesarios y las bibliotecas asociadas en el chroot.

La referencia al "servidor sftp en proceso" significa ForceCommand internal-sftpque debe usarse en su Matchbloque.

Nota: el extracto es de OpenSSH 7.5 ya que no tengo acceso a ninguna implementación SSH anterior.

información relacionada