Quiero configurar sftp-server para compartir un directorio pero no sé cómo modificarlo /etc/ssh/sshd_config
.
Mis requisitos son:
1) El inicio de sesión no utilizará certificados, solo contraseña (es decir, la autorización utiliza el método de contraseña)
2) Quiero iniciar sesión con el usuario: ftp, contraseña: foo y compartir directorio / home / ftp.
3) Tengo una aplicación que de vez en cuando necesita descargar un archivo del servidor, no necesito iniciar sesión con un cliente operativo completo.
Hasta ahora agregué las siguientes líneas a / etc / ssh / sshd_config:
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
Todo lo demás está comentado.
/home/ftp
es un directorio vacío en este momento.
Access funciona si intento descargar un archivo usando credenciales de root, pero no funciona si uso las credenciales de ftp. ¿Necesito configurar un shell de inicio de sesión? ¿Necesito poblar / home / ftp de alguna manera?
EDITAR: Este es mi registro sshd:
subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering
* El cliente se cuelga aquí (hasta que se agote el tiempo de espera) *
Tenga en cuenta, nuevamente, que si inicio sesión como "root", el archivo se descarga correctamente. También se descarga correctamente si comento las últimas tres líneas del archivo de configuración (es decir, la Match
línea y las siguientes 2).
ssh
, o PuTTY en Windows? ¿Qué versión de OpenSSH estás usando?Respuestas:
Debe asegurarse de que
/home/ftp
es propiedad deroot
ese grupo y de otros que no tienen permisos de escritura, por ejemplochmod 0755
. Debe agregar subdirectorios paraftp
agregar archivos.También necesita el
internal-sftp
subsistema, de lo contrario, debe proporcionar unchroot
entorno adecuado en/home/ftp
:Para no permitir todos los tipos de inicio de sesión sin contraseña, ingrese
Estos se activan por defecto.
fuente
/var/log/secure
, al menos ahí es donde lo obtengo en mi sistema./var/log/messages
. Tengo lo siguiente:Failed none for ftp [...]
seguido deAccepted password for ftp [...]
yUser child is on pid 7658
. El cliente cuelga y luego agota el tiempo de esperasshd_config
estuvo bien.