
Hay algunas preguntas similares pero no iguales. No quiero cambiar la carpeta predeterminada. entonces quiero configurar la CARPETA RAÍZ para la conexión ssh. Quiero decir, la única carpeta a la que el cliente tiene acceso es la que configuré. Quiero establecer una ruta a la que mi cliente solo tenga acceso y no pueda usar el archivo cd ..
.
No pueden ir a las carpetas superiores porque no tienen acceso ni permiso.
Editar: lo más importante que quiero hacer es tener un servidor local con algunos otros dispositivos para escribir en él, pero no acceder a todos los archivos. Si hay una manera mejor que ssh, perdón por mi mala pregunta.
Gracias
Respuesta1
Debe establecer ChrootDirectory
la configuración sshd para dicho usuario, o para algún grupo, o para todos los usuarios, pero eso es asqueroso.
Creas un nuevo archivo, digamos, /etc/ssh/sshd_config.d/chroot_some_users.conf
y pones lo siguiente:
Match User myuser
ChrootDirectory %h
Si desea tener esto para varios usuarios, use Match Group groupname
y agregue todos los usuarios necesarios a ese grupo.
En las distribuciones modernas de Linux existe Include /etc/ssh/sshd_config.d/*.conf
el archivo /etc/ssh/sshd_config
. En distribuciones más antiguas, es posible que necesite agregar esta línea usted mismo; simplemente agréguelo al final. Cuando hayas hecho todo, consulta con sshd -t
, y si no informa ningún error, es seguro volver a cargar la configuración con systemctl reload sshd.service
.
El usuario myuser
terminará viendo su directorio de inicio como la raíz del sistema de archivos a través de SSH. Tenga en cuenta que no podrán iniciar sesión a través de SSH, porque este chroot les impedirá ver el binario del shell y las bibliotecas requeridas, a menos que las haya puesto a disposición en su directorio de inicio. Pero aún podrán usar SFTP para transferir archivos y reenviar puertos TCP.
Lea man sshd_config
(¡completamente!) y man sshd
para conocer muchos detalles importantes y útiles.