Muchos tutoriales le dicen que configure su servidor ssh de esta manera:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
pero con esta configuración no puede usar PAM, ya que planeo usar 2 Factor Auth con Google Authenticator (OTP Onetime Password) necesito PAM.
Entonces, cómo configurar un nuevo debian jessie ssh deamon, si quiero evitar el inicio de sesión con la contraseña normal pero aún así permitir el uso de PAM.
tal vez la pregunta exacta es ¿cómo configurar pam para no permitir contraseñas?
Detalles sobre la autenticación PAM
Deshabilitar la autenticación de contraseña basada en PAM es bastante poco intuitivo. Se necesita en casi todas las distribuciones de GNU / Linux (con la notable excepción de Slackware), junto con FreeBSD. Si no tiene cuidado, puede configurar PasswordAuthentication en 'no' e iniciar sesión con solo una contraseña a través de la autenticación PAM. Resulta que necesita establecer 'ChallengeResponseAuthentication' en 'no' para deshabilitar realmente la autenticación PAM. Las páginas de manual de FreeBSD tienen esto que decir, lo que puede ayudar a aclarar un poco la situación:
Tenga en cuenta que si ChallengeResponseAuthentication es 'yes', y la política de autenticación PAM para sshd incluye pam_unix (8), la autenticación de contraseña se permitirá a través del mecanismo de desafío-respuesta, independientemente del valor de PasswordAuthentication.
http://www.unixlore.net/articles/five-minutes-to-more-secure-ssh.html
ChallengeResponseAuthentication
rompe el método de autenticación interactivo con el teclado, que es necesario para los módulos de autenticación PAM que manejan OTP. (deseado por el OP) Deshabilitar CRA solo es seguro de realizar si realmente tiene cero módulos PAM en laauth
pila que necesitan dispararse. SiPasswordAuthentication
yGSSAPIAuthentication
están desactivadas, no será aceptado una contraseña a menos PAM tiene una habilitar el módulo de autenticación que lo solicite.para no permitir la solicitud de contraseña
comenta esta línea
en /etc/pam.d/sshd
y asegúrese de no tener nullok al final de esta línea a menos que esté bien autenticarse a través de ssh sin usar OTP
fuente