
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 ssh
y mi sftp
conexió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 restart
y 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_config
manual dice que
Debe
ChrootDirectory
contener 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/dev
nodos básicos comonull(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/log
sftp-server(8)
Debe crear el dev
directorio y luego copiar el /dev/MAKEDEV
script 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-sftp
que debe usarse en su Match
bloque.
Nota: el extracto es de OpenSSH 7.5 ya que no tengo acceso a ninguna implementación SSH anterior.