Deshabilitar la autenticación de contraseña ssh en High Sierra

Quiero deshabilitar la autenticación de contraseña, es decir, solo claves, en SSH. He hecho esto muchas veces en variantes de Linux, y algunas búsquedas aquí sugieren que es lo mismo en Mac, es decir:

/etc/ssh/sshd_config

Luego agrega/edita:

PasswordAuthentication no

Sin embargo, esto parece no tener efecto, es decir, todavía puedo iniciar sesión con una contraseña. ¿Hay algún truco diferente para hacer esto en High Sierra?

Tienes que editar el archivo ssh.plist. Esto requerirá deshabilitar SIP. Editándolo, recargándolo a través de launchctl, luego volviendo a habilitar SIP.
Especialmente UsePAM tiene que establecerse en no. La configuración de los siguientes 4yo sshd_config aún debería funcionar en 10.13: configuración SSH que no tiene contraseña
@Allan, puedo confirmar que no lo haces. Desactivé con éxito la autenticación de contraseña en High Sierra (10.13.5) editando solo /etc/ssh/sshd_config (configuré las opciones PermitRootLogin, PasswordAuthentication, ChallengeResponseAuthenticationy todas en ); SIP nunca se ha deshabilitado en esta Mac en particular. UsePAMno

Respuestas (3)

Para evitar la autenticación sin una clave pública, busque cada uno de estos en /etc/ssh/sshd_config, elimínelos y configúrelos en 'no':

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Para reiniciar sshd (que es necesario para que vuelva a leer el archivo de configuración), utilice

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

PD: tenga en cuenta que macOS tiende a sobrescribir /etc/ssh/sshd_configcon cada actualización menor. Comenzando con Monterey, puede poner sus definiciones /etc/ssh/sshd_config.d/000-local.confpara evitar esto.

Funciona también en Big Sur 11.6 Gracias.
Mi respuesta original solo requería configurar PasswordAuthentication y UsePAM en no. ¿Es realmente necesario establecer también ChallengeResponseAuthentication en no? ¿Qué cambió?
@coolaj86 ¿Qué ChallengeResponseAuthenticationagrega?
@nohillside Para macOS específicamente, posiblemente nada, pero para ssh en general ChallengeResponseAuthentication se refiere a la autenticación de contraseña, por lo que si deshabilita PAM pero no deshabilita el otro, aún es posible iniciar sesión mediante contraseña.
Ponerlo en /etc/ssh/sshd_config.d/000-local.confMonterey es una excelente idea. Según mis pruebas, los archivos de configuración con números más bajos anulan las opciones establecidas en archivos con números más altos, por lo que 000 (en lugar de 999) es de hecho la mejor opción de número para este archivo.

Como se dijo en el comentario de klanomath, deshabilitar solo estas líneas no funcionará.

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Para deshabilitar el inicio de sesión con contraseña, también debe editar la línea UsePAM.

UsePAM no

comentario de klanomath

Especialmente UsePAM tiene que establecerse en no. La configuración del siguiente sshd_config de 4 años aún debería funcionar en 10.13: configuración SSH que no tiene contraseña – klanomath hace 2 horas

Parece funcionar. Nunca tuve que hacer eso en sistemas Linux. ¡Muchas gracias!