MacOS SSH conectar mediante clave

Estoy tratando de conectarme a mi host usando la clave SSH. Generé un par de claves y agregué una clave pública a las claves autorizadas del servidor.

Sin embargo, no puedo conectarme al servidor usando mi clave privada. Cada vez que me conecto me pide la contraseña.

Intenté ejecutar ssh-add my_key_namey dijo que está bien y que se agregó. Pero no está funcionando.

También he tratado de agregar a miconfig

Host alias
    HostName host
    User user_name
    IdentityFile ~/.ssh/id_rsa

Tampoco está funcionando. ssh aliasfunciona pero aún pide contraseña.

Sería útil obtener un poco más de contexto sobre lo que está fallando. El uso del -vvvindicador detallado para permitirle iniciar sesión durante las conexiones generalmente muestra exactamente por qué no funciona. Además, iniciar sesión en el servidor y seguir el registro seguro es otro gran recurso si se trata de una mala configuración del servidor. Sin embargo, el 99% de las veces es un problema de permisos en su máquina local.
He escrito una especie de procedimiento para esto. Ver: apple.stackexchange.com/questions/285805/how-to-ssh-in-one-line/…
Las claves ssh solo funcionan si el servidor conectado ya conoce la clave pública correspondiente a la clave privada que posee el cliente. Debe tomar las medidas necesarias para que esto suceda primero.

Respuestas (3)

Para obtener una explicación detallada de lo que sucede, consulte Agentes SSH . En la mitad de la página, encontrará SSH Agent en OS X y macOS .

Consulte también la Nota técnica de Apple TN2449 - Actualizaciones de OpenSSH en macOS 10.12.2

Tienes que agregar algunas líneas a tu archivo de configuración:

# enable integration between Keychain and SSH Agent  
UseKeychain yes  
AddKeysToAgent yes

Una vez que haya hecho eso, creo que se le pedirá su contraseña la primera vez que ingrese a su servidor. Después de eso, usará las claves que proporcionó.

Entonces su archivo de configuración debería verse así:

Host alias
    HostName host
    User user_name
    IdentityFile ~/.ssh/id_rsa
    # enable integration between Keychain and SSH Agent  
    UseKeychain yes  
    AddKeysToAgent yes

Para conectarse usando claves SSH, debe copiar la clave de su máquina al servidor remoto usando ssh-copy-id user@remote_ip_address.

Se le pedirá que ingrese la contraseña para el servidor remoto y se copiará la clave.

Si generó un par de claves usando una contraseña, siempre tendrá que ingresar esa contraseña cuando se conecte. De lo contrario, simplemente puede conectarse usando ssh user@remote_ip_addressy se conectará a la máquina remota.

Siguiendo las instrucciones, generé un par de claves en el servidor y copié desde allí una privada

¿Son correctos los permisos de authorized_keys? Debe ser 400 propiedad del usuario.

Verifique los registros del servidor remoto, generalmente útiles para depurar problemas de autenticación en SSH.

Además de comprobar los permisos del archivo authorized_keys, el propio directorio ~/.ssh debe tener permisos de 700.