19 votos

Cómo utilizar las claves SSH y desactivar la autenticación por contraseña

Estoy intentando acceder a un Mac de forma remota (tengo acceso físico a este Mac) a través de SSH desde un ordenador cliente Linux. Mi objetivo es acceder a este Mac desde fuera de la red. El reenvío de puertos está configurado en el router. Desde mi ordenador cliente soy capaz de ssh user@ip para la IP pública y puedo entrar en el Mac, así que el reenvío de puertos está funcionando.

Ahora quiero configurar las claves SSH. He generado las claves SSH en mi ordenador cliente pero quería configurar primero el demonio SSH en el Mac. He editado /etc/ssh_config y establecer PasswordAuthentication no . He reiniciado SSH con estos comandos: sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist entonces sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist . Cuando intento volver a entrar por SSH desde el cliente, me sigue pidiendo la contraseña.

Eché un vistazo a este puesto y de la respuesta añadí UsePAM no al archivo de configuración y reiniciar el servicio con launchctl de nuevo. Todavía se me pide una contraseña.

También he probado la solución aquí . Todavía se me pide una contraseña.

¿Cómo configuro mi ssh_config para que no pida la contraseña y sólo acepte claves SSH? ¿No estoy reiniciando el demonio correctamente? ¿Hay algún otro paso que me falte?

22voto

beznez Puntos 116

Estaba editando el archivo de configuración equivocado. En lugar de /etc/ssh_config , he editado private/etc/sshd_config . Creo que esto probablemente también habría funcionado si hubiera editado /etc/sshd_config según la respuesta actualizada de @GhostLyrics, pero aún no lo he probado, así que no puedo asegurarlo. Después de eso, reinicié el servicio con sudo launchctl stop com.openssh.sshd y luego sudo launchctl start com.openssh.sshd y pude conseguir el comportamiento deseado. Aquí está el recurso donde encontré la información pertinente: http://superuser.com/questions/364304/how-do-i-configure-ssh-on-os-x

Aquí están las opciones de configuración que he cambiado:

PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no

Después de eso pude generar exitosamente claves SSH en mi computadora cliente, moví la clave pública a ~/.ssh/authorized_keys en el Mac y establecer los permisos para ese archivo a 644.

Es importante señalar que esos permisos son para mi clave pública . Mi clave privada Los permisos están configurados a 600 en mi ordenador cliente. Esto es realmente importante si tiene tanto su clave pública como privada en su ~/.ssh y hay varios usuarios en el sistema. Si su clave privada los permisos se establecen en 644 entonces cualquier usuario podría leer su clave privada y hacerse pasar por usted. Además, los permisos para el ~/.ssh debe ser 700.

7 votos

Internamente, /etc/sshd_config y /private/etc/sshd_config son el mismo archivo. :)

13voto

李智修 Puntos 65

Estoy usando Apple-M1 (11.3) ahora y encontré que sólo la configuración PasswordAuthentication no no funciona, pero estas dos opciones son suficientes:

PasswordAuthentication no
ChallengeResponseAuthentication no

enter image description here enter image description here

0 votos

Muchas gracias. Esto me ayudó con mi mini servidor M1.

11voto

bovium Puntos 919

/etc/ssh/ssh_config es el archivo de configuración para el cliente que se utiliza si no tiene uno más específico en su directorio principal. Lo que quieres editar es /etc/ssh/sshd_config que es el del servidor.

Seguramente querrá establecer PermitRootLogin without-password (o no ) y PasswordAuthentication no allí.


Actualizar: Dado que está ejecutando Yosemite, el archivo es /etc/sshd_config según esta respuesta: http://apple.stackexchange.com/a/167405/11135

Para explicar con más detalle por qué sigue preguntando al configurar PasswordAuthentication no en /etc/ssh/ssh_config es importante entender lo que se ha configurado. "Al hacer una saliente conexión a través de SSH, no ofrezca autenticación por contraseña".

0 votos

No tengo una /etc/ssh/ssh_config , sólo un /etc/ssh_config . Estoy corriendo en Yosemite. He probado el PasswordAuthentication no pero sigue pidiéndome la contraseña.

0 votos

Ah, ya veo. Eso no es lo que quiero. Quiero hacer SSH desde mi cliente Linux al Mac con claves y sin contraseña. ¿Qué debo cambiar para un que llega a ¿Conexión?

0 votos

/etc/sshd_config PasswordAuthentication no . Perdón por la confusión. Por favor, hágame saber cómo puedo hacer la respuesta más clara. :)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X