¿Cómo configuro sshd en Mac OS X para permitir solo la autenticación basada en claves?

15

Tengo una máquina Mac OS X (Mac mini con 10.5) con Remote Login habilitado. Quiero abrir el puerto sshd a Internet para poder iniciar sesión de forma remota.

Por razones de seguridad, quiero deshabilitar los inicios de sesión remotos utilizando contraseñas, permitiendo que solo los usuarios con una clave pública válida puedan iniciar sesión.

¿Cuál es la mejor manera de configurar esto en Mac OS X?

Christian Berg
fuente

Respuestas:

20

Después de un pequeño ensayo y error, encontré la respuesta yo mismo. Estas opciones deben establecerse en /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Solo cambiar uno de ellos no es suficiente.

Christian Berg
fuente
3
En El Capital (y probablemente también en Mavericks), la ubicación cambió a en /etc/ssh/sshd_configlugar de solo/etc/sshd_config
yorch el
Esa fue la solución. Una gran cantidad de recursos en línea no mencionan la clave de todo este asunto: ChallengeResponseAuthentication no.
the_real_one
1

En / etc / ssh / sshd_config

# To disable tunneled clear text passwords, change to no here! Also,
# remember to set the UsePAM setting to 'no'.
#PasswordAuthentication yes
#PermitEmptyPasswords no

Establezca PasswordAuthentication en no y elimine el # antes.

usuario21715
fuente
¿Leyó el comentario anterior acerca de configurar UsePAM en 'no'?
user21715
Eso no parece ser necesario (ver mi propia respuesta).
Christian Berg
0

En realidad, en / etc / sshd_config se establece la siguiente línea:

Contraseña Autenticación no

Si está utilizando una instalación estándar (es decir, no la compiló / instaló usted mismo desde el origen), launchd debería encargarse de recoger la nueva configuración sin tener que reiniciar el demonio.

usuario5336
fuente
Esto no funciona, todavía puedo iniciar sesión con mi contraseña. El archivo de registro /var/log/secure.log contiene una entrada como esta: sshd [16306]: teclado interactivo / pam aceptado para cristiano desde 192.168.178.20 puerto 63841 ssh2 Creo que la opción PasswordAuthentication solo controla los inicios de sesión de contraseña de texto sin cifrar, no teclado interactivo?
Christian Berg