Diferentes "RequiredAuthentications2" para los subsistemas sshd y sftp

Diferentes "RequiredAuthentications2" para los subsistemas sshd y sftp

Actualmente estamos usando una autenticación de 2 factores en nuestros servidores SSH, por lo que tenemos "RequiredAuthentications2 publickey,keyboard-interactive" en nuestro sshd_config (la clave pública para la clave, el teclado interactivo es para el 2factor que se maneja a través de PAM)

Para facilitar las cosas a nuestros desarrolladores, queremos desactivar el requisito de 2 factores para el subsistema sftp.

Ya busqué algo como "Match subsystem sftp" (como el 'Grupo de coincidencias' disponible donde luego podría definir solo "Clave pública RequiredAuthentications2", pero parece que eso no es posible.

Otra cosa que examiné fue verificar PAM, si existe la posibilidad de definir una configuración separada para el subsistema sftp (parece que eso no es factible, el servicio para pam siempre es 'ssh') o si podría tener algo en mi configuración sshd pam como "auth [éxito = 1 predeterminado = ignorar] pam_succeed_if.so subsistema silencioso en sftp"

¿Alguna pista? (además de configurar otra instancia sshd solo para sftp con una configuración diferente)

Respuesta1

En lugar de intentar relajar la seguridad con una regla de grupo, usaría la seguridad predeterminada y la reforzaría con reglas de grupo. A continuación se muestra un ejemplo que requiere autenticación de dos factores para users, pero no sftp-users.

# Only these groups can connect
AllowGroups users sftp-users

Match Group users
    RequiredAuthenticatios2 publickey,keyboard-interactive

Match Group sftp-users 
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no

Hice un prototipo de esto con éxito en un sistema Ubuntu, mi página de manual sshd_config especificó AuthenticationMethodsen lugar de la RequiredAuthenticatios1página RequiredAuthenticatios2de manual del sistema CentOS. La línea equivalente era

    AuthenticationMethods publickey,password

información relacionada