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

12

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 Linux. Mi objetivo es acceder a esta Mac desde fuera de la red. El reenvío de puertos está configurado en el enrutador. Desde mi computadora cliente puedo ssh user@ipacceder a la IP pública y puedo ingresar a la Mac, por lo que el reenvío de puertos funciona.

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

Eché un vistazo a esta publicación y de la respuesta que agregué UsePAM noal archivo de configuración y reinicié el servicio launchctlnuevamente. Todavía se me solicita una contraseña.

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

¿Cómo configuro mi ssh_configpara que no solicite la contraseña y solo acepte claves SSH? ¿No estoy reiniciando el demonio correctamente? ¿Hay otro paso que me estoy perdiendo?

beznez
fuente

Respuestas:

13

¡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 editara /etc/sshd_configsegún la respuesta actualizada de @GhostLyrics, pero aún no lo probé, así que no puedo decir con certeza. Después de eso, reinicié el servicio con sudo launchctl stop com.openssh.sshdy luego sudo launchctl start com.openssh.sshdpude obtener el comportamiento deseado. Aquí está el recurso donde encontré la información pertinente: /superuser/364304/how-do-i-configure-ssh-on-os-x

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

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

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

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

beznez
fuente
55
Internamente, /etc/sshd_configy /private/etc/sshd_configson el mismo archivo. :)
GhostLyrics
8

/etc/ssh/ssh_configes 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 se quiere editar es /etc/ssh/sshd_configque es el uno para el servidor.

Probablemente desee establecer PermitRootLogin without-password(o no) y PasswordAuthentication noallí.


Actualización: dado que está ejecutando Yosemite, el archivo está de /etc/sshd_configacuerdo con esta respuesta: https://apple.stackexchange.com/a/167405/11135

Para elaborar aún más por qué sigue indicaciones cuando el ajuste PasswordAuthentication noen el /etc/ssh/ssh_configque es importante entender lo que ha configurado. "Al realizar una conexión saliente a través de SSH, no ofrezca autenticación de contraseña".

FantasmaLetras
fuente
No tengo un /etc/ssh/ssh_config, solo un /etc/ssh_config. Estoy corriendo en Yosemite. Probé el PasswordAuthentication nopero todavía me está pidiendo la contraseña.
beznez
Ah, ya veo. Eso no es lo que quiero. Quiero SSH desde mi cliente Linux a la Mac con claves y sin contraseña. ¿Qué debo cambiar para una conexión entrante ?
beznez
/etc/sshd_configPasswordAuthentication no. Perdón por la confusion. Avíseme cómo puedo hacer que la respuesta sea más clara. :)
GhostLyrics
Todavía estoy teniendo el mismo comportamiento. Me pide una contraseña cuando paso de la máquina Linux a la Mac.
beznez
Continuemos esto en el chat chat.stackexchange.com/rooms/info/34931/…
GhostLyrics el