16 votos

¿Cómo puedo configurar sshd en Mac OS X para que sólo permita la autenticación basada en claves?

Tengo una máquina Mac OS X (Mac mini corriendo 10.5) con Inicio de Sesión Remoto 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 mediante contraseñas, permitiendo que sólo 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?

21voto

Brian G Puntos 8580

Tras un poco de ensayo y error, yo mismo encontré la respuesta. Estas opciones tienen que estar configuradas en /etc/sshd_config :

PasswordAuthentication no
ChallengeResponseAuthentication no

No basta con cambiar uno de ellos.

3 votos

En El Capital (y probablemente también en Mavericks), la ubicación cambió a /etc/ssh/sshd_config en lugar de sólo /etc/sshd_config

0 votos

Esa fue la solución. Un montón de recursos en línea no mencionan la clave de todo esto: ChallengeResponseAuthentication no .

1voto

user21715 Puntos 36

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 como no y elimine el # antes de él.

0 votos

¿Has leído el comentario anterior sobre la configuración de UsePAM en "no"?

0 votos

No parece que sea necesario (véase mi propia respuesta).

0voto

user5336 Puntos 756

En realidad es en /etc/sshd_config donde se pone la siguiente línea:

PasswordAuthentication no

Si estás usando una instalación de stock (es decir, no lo has construido/instalado tú mismo desde el código fuente), launchd debería encargarse de recoger la nueva configuración sin tener que reiniciar el demonio.

0 votos

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]: Accepted keyboard-interactive/pam for christian from 192.168.178.20 port 63841 ssh2 Creo que la opción PasswordAuthentication sólo controla los inicios de sesión con contraseña de texto claro, no con teclado interactivo.

0voto

Life5ign Puntos 101

Si todavía no consigues que funcione con todos los comentarios aquí que modifican /etc/ssh/sshd_config , mira esta línea de man sshd en OSX, en la sección FILES:

~/.ssh/authorized_keys
             Lists the public keys (DSA, ECDSA, Ed25519, RSA) that can be used for logging in as this user.  The format of this file is described above.
             The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others.

             **If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modified or replaced by
             unauthorized users.  In this case, sshd will not allow it to be used unless the StrictModes option has been set to ``no''.**

Así que puede establecer, en /etc/ssh/sshd_config :

StrictModes no

(no hice la prueba de esa manera), o asegúrese de que los permisos de los archivos mencionados en el documento son correctos:

chmod 0600 ~/.ssh/authorized_keys
chmod 0700 ~/.ssh

Establecer permisos para ~ es más complejo, ya que puede tener atributos especiales como el bit setuid, etc. En primer lugar, utilice stat para encontrar los permisos reales, absolutos y octales de ~ :

stat -f %Op ~

La sintaxis de stat parece ser diferente en la versión osx que en la versión GNU. Para mí, esto inicialmente la salida:

40777

Los dos últimos 7 significan que es rwx para el grupo y otros; necesitamos que sean 5, para eliminar los permisos de escritura para el grupo y otros, como se especifica en el doc: sólo el usuario puede tener escritura en ~ . Así que, actúa:

chmod 40755 ~

NOTA: sólo cambia los dos últimos números ; si cambias algo más, estarás cambiando los permisos (el tercer número octal), o las propiedades especiales del archivo (cualquier cosa antes de los tres últimos números octales).

Después de hacer esto, la autenticación de clave pública finalmente funcionó. Vale la pena.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: