Habilitar el inicio de sesión solo con clave ssh en mi Mac para 1 usuario

21

Tengo un Macbook Air al que me gustaría permitir el acceso remoto de SSH sin contraseña. He creado un usuario llamado con el remotepairque he iniciado sesión y verifiqué que puedo usar la Mac. También agregué este usuario a la lista de usuarios permitidos del servicio "Eliminar inicio de sesión" y activé el servicio. Todo esto se hizo en el panel de control "Compartir".

Obtuve la clave pública de otra computadora y la agregué al archivo /Users/remotepair/.ssh/authorized_keys. Cuando la otra computadora ssh remotepair@<my ip>todavía recibe un mensaje de contraseña.

¿Cómo deshabilito esta solicitud de contraseña?

Jason
fuente
1
Recomiendo agregar "Autenticación solo de clave SSH" al título de su pregunta: la forma en que se lee ahora suena como un inicio de sesión de ventana de inicio de sesión GUI normal.
NReilingh

Respuestas:

27

Para deshabilitar la autenticación de contraseña, necesita editar /etc/sshd_config. En Terminal:

sudo vim /etc/sshd_config

(o reemplace con su editor favorito)

Busca la línea:

#ChallengeResponseAuthentication yes

Y cámbielo a:

ChallengeResponseAuthentication no

Es decir, elimine el #al principio y cambie yesa no.

Todos los inicios de sesión ssh posteriores REQUIEREN que use una clave ssh y no le solicitarán una contraseña. ¡Asegúrese de que su clave ssh funcione antes de hacer esto si no tiene acceso local! No es necesario reiniciar el demonio ssh ni nada porque se inicia a pedido para cada nueva conexión entrante. Tenga en cuenta que también puede ver una PasswordAuthenticationlínea, pero eso noya está predeterminado .

Si sus claves ssh no funcionan, entonces ese es un problema por separado, pero esto responde a la pregunta tal como se plantea ahora :)

Cesio
fuente
También necesito agregar al usuario a la configuración AllowUser. Solo puedo adivinar que la configuración de la GUI no modificó esta línea de texto.
Jason
77
Tenga en cuenta que en versiones posteriores de Mac OS X (definitivamente en El Capitan), se ha movido a sshd_config /etc/ssh/.
zelk
2
Tenga en cuenta que, a partir de MacOS Sierra (v10.12.x), el valor predeterminado de PasswordAuthenticationha cambiado a yes, así que asegúrese de cambiarlo a no.
Travis Clarke
3

Para actualizar la respuesta para macOS Sierra (10.12.6 específicamente), parece que el archivo de configuración está ahora /etc/ssh/sshd_config

2 líneas deben ser descomentadas + modificadas para deshabilitar completamente la autenticación de contraseña: (Estas son las líneas 57 a 62, inclusive, en el sshd_configarchivo predeterminado )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Como se mencionó anteriormente, puede habilitar / deshabilitar el acceso ssh desde la GUI System Preferences.app, y no se requiere reiniciar el demonio entre la edición de la configuración.

Ivan G.
fuente
1

Debe verificar los permisos de los directorios involucrados: /Users/remotepair/y /Users/remotepair/.sshno deben permitir el acceso de escritura de "otros" usuarios. My .sshtiene derechos de acceso solo para el propietario.

Además, en el sistema remoto, haga una ssh -v remotepair@yoursystempara ver qué métodos de autorización están permitidos e intentados. Esté atento a Authentications that can continue: publickey,password,keyboard-interactive. Tal vez debe habilitar RSAAuthenticationen su sistema.

vilmoskörte
fuente
1

En un sistema de prueba aquí, deshabilitar el indicador SSH requiere que se agreguen las siguientes dos líneas a /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

Los comentarios en sshd_configtambién aconsejan que se agregue la siguiente línea:

UsePAM no
lava37
fuente