Cómo usar las claves SSH y deshabilitar la autenticación de contraseña

9

Estoy tratando de acceder a una Mac de forma remota (tengo acceso físico a esta Mac) a través de SSH desde una computadora cliente con Linux. Mi objetivo es acceder a este Mac desde fuera de la red. El reenvío de puertos se configura en el enrutador. Desde la computadora de mi cliente puedo ssh user@ip para la IP pública y puedo ingresar a la Mac, por lo que el reenvío de puertos está funcionando.

Ahora quiero configurar las claves SSH. He generado claves SSH en la computadora de mi cliente, pero antes quería tener el Daemon SSH en la configuración de Mac. Edité /etc/ssh_config y configuré PasswordAuthentication no . Reinicié SSH con estos comandos: sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist , luego sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist . Cuando intento volver a ingresar desde el cliente a SSH, todavía me pide mi contraseña.

Eché un vistazo a esta publicación y de la respuesta Agregué UsePAM no al archivo de configuración y reinicié el servicio con launchctl nuevamente. Todavía me piden una contraseña.

También probé la solución aquí . Todavía me piden una contraseña.

¿Cómo configuro mi ssh_config para que no solicite la contraseña y solo acepte claves SSH? ¿No estoy reiniciando el demonio correctamente? ¿Hay algún otro paso que me esté perdiendo?

    
pregunta beznez 27.01.2016 - 19:38

2 respuestas

9

Estaba editando el archivo de configuración incorrecto! En lugar de /etc/ssh_config , edité 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 he probado eso, 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 obtener el comportamiento deseado. Aquí está el recurso donde encontré la información pertinente: enlace

Aquí están las opciones de configuración que cambié:

PermitRootLogin no PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no

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

Es importante tener en cuenta que esos permisos son para mi clave pública . Mis permisos clave privada están configurados en 600 en mi computadora cliente. Esto es realmente importante si tiene su clave pública y privada en su carpeta ~/.ssh y hay varios usuarios en el sistema. Si sus permisos clave privada están configurados en 644, entonces cualquier usuario podría leer su clave privada y hacerse pasar por usted. Además, los permisos para la carpeta ~/.ssh deberían ser 700.

    
respondido por el beznez 28.01.2016 - 20:07
4

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

Es probable que desees establecer PermitRootLogin without-password (o no ) y PasswordAuthentication no allí.

Actualizar: Ya que está ejecutando Yosemite, el archivo es /etc/sshd_config de acuerdo con esta respuesta: enlace

Para explicar con más detalle por qué aún se preguntan al configurar PasswordAuthentication no en /etc/ssh/ssh_config , es importante comprender lo que configuró. "Al realizar una conexión saliente a través de SSH, no ofrezca autenticación con contraseña".

    
respondido por el GhostLyrics 27.01.2016 - 19:50

Lea otras preguntas en las etiquetas