¿Cómo puedo agregar permanentemente mi clave privada SSH a Keychain para que esté disponible automáticamente para ssh?

Parece que ssh-add -K ~/.ssh/id_rsa cargará su clave, pero le pedirá la contraseña cada vez que reinicie.

Estoy buscando una solución que no requiera que vuelva a ingresar la contraseña clave entre inicios de sesión.

Comentarios

  • Puede ¿Dices un poco más sobre cuándo aparece la solicitud de contraseña? Lo pregunto porque tengo una clave ssh para un servidor remoto, que les aseguro que no es la misma que mi contraseña de inicio de sesión de Mac ni nada, y no ' tuve que ingresar el contraseña para la clave ssh durante años . Puedo abrir una terminal, escribir " ssh < server > ", y yo ' estoy allí. Creo que primero configuré esta clave en OSX 10.5. id_dsa, pero no ' creo que eso debería importar.
  • Mi clave id_rsa tiene una contraseña.
  • También tengo el problema de que resolví esto hace tanto tiempo que no puedo ' recordar exactamente lo que hice. Pero creo que la idea es no ejecutar ssh-add, sino simplemente ejecutar ssh directamente. Debería aparecer una ventana que será la frase de contraseña para la clave, y con una casilla de verificación que le permitirá almacenarla en su llavero.
  • @Sorin, ¡también la mía! Tuve que ingresarlo una vez, hace mucho tiempo, y la Mac me lo ha guardado desde entonces. Con suerte, los consejos de Harald ' ayudarán.
  • ¿Te refieres a la contraseña del llavero (es decir, tu contraseña de inicio de sesión) o la clave ' s contraseña? Si ' es lo último, ¿tus frases de contraseña están definitivamente almacenadas en Keychain? Puede verificar esto abriendo Keychain Access y buscándolo en el llavero de inicio de sesión.

Responder

En OSX , el cliente nativo ssh-add tiene un argumento especial para guardar la frase de contraseña de la clave privada en el llavero de OSX, lo que significa que su inicio de sesión normal lo desbloqueará para su uso con ssh. En OSX Sierra y luego, también necesita configurar SSH para usar siempre el llavero (vea el Paso 2 a continuación).

Alternativamente, puede usar una clave sin una frase de contraseña, pero si prefiere la seguridad que es ciertamente aceptable con este flujo de trabajo.

Paso 1 – Guarde la clave en el llavero

Solo haga esto una vez:

ssh-add -K ~/.ssh/[your-private-key] 

Ingrese su frase de contraseña clave y no se le volverá a pedir.

(Si está en una versión anterior a Sierra de OSX, ya ha terminado, no se requiere el paso 2).

Paso 2 – Configure SSH para usar siempre el llavero

Parece que OSX Sierra eliminó el comportamiento conveniente de conservar sus claves entre inicios de sesión, y la actualización a ssh ya no utiliza el llavero de forma predeterminada. Debido a esto, se le pedirá que ingrese la frase de contraseña para una clave después de la actualización y nuevamente después de cada reinicio.

La solución es bastante simple y se describe en este comentario de hilo de github . Así es como lo configura:

  1. Asegúrese de haber completado el Paso 1 anterior para almacenar la llave en el llavero.

  2. Si aún no lo ha hecho, cree un archivo ~/.ssh/config. En otras palabras, en el directorio .ssh en su directorio de inicio, haga un archivo llamado config.

  3. En ese archivo .ssh/config, agregue las siguientes líneas :

     Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

    Cambie ~/.ssh/id_rsa por el nombre de archivo real de su clave privada. Si tiene otras claves privadas en su ~/.ssh directorio, también agregue una línea IdentityFile para cada uno de ellos. Por ejemplo, tengo una línea adicional que dice IdentityFile ~/.ssh/id_ed25519 para una segunda clave privada.

    La UseKeychain yes es la parte clave, que le dice a SSH que busque en su llavero OSX la clave frase de contraseña.

  4. ¡Eso es todo! La próxima vez que cargue cualquier conexión ssh, probará las claves privadas que ha especificado y buscará su frase de contraseña en el llavero de OSX. No es necesario escribir la frase de contraseña.

Comentarios

  • @Poulsbo & @Abram – mira mi actualización, Sierra cambió el comportamiento automático y ahora tienes que ejecutar ssh-add -A manualmente para cargar su llavero guardado. Algunas posibles soluciones mencionadas anteriormente.
  • @trisweb Gracias por el consejo. joshbuchea '.ssh/config parece prometedora. Consulte github.com/lionheart/openradar-mirror/issues/…
  • ¡Funciona muy bien!En mi caso, necesitaba usar el indicador A además del indicador K para agregar mis claves al llavero y registrar la contraseña en eso (ssh-add -AK ~/.ssh/[your-private-key]). ¡Gracias!
  • Incluso con la opción usekeychain, todavía encuentro que mi llavero dejará caer la clave .ssh / id_rsa al reiniciar.
  • Hice exactamente lo mismo y mi Mac aún deja caer la al reiniciar.

Responder

Tuve un problema similar, ya que me preguntaban cada vez para mi contraseña de clave de publicación. Por sugerencia del usuario «trisweb» anterior, encendí estas opciones para ~/.ssh/config:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

Pero seguía apareciendo cada vez que quería usar ssh. Finalmente, encendí ssh -v y encontré esta línea de depuración:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Luego abrí mi llavero en «Acceso a llaveros .app «, encontró la clave llamada» SSH: /Users/username/.ssh/id_rsa «y la abrió. Hice clic en «Mostrar contraseña» para revelar la contraseña y de hecho descubrí que la frase de contraseña en el llavero era una frase de contraseña antigua. Actualicé la contraseña en Keychain Access, y ahora funciona sin contraseña.

También podría haber actualizado la contraseña con esta frase:

ssh-keygen -p -f ~/.ssh/id_rsa 

Comentarios

  • En mi Mac, la contraseña se guarda en la categoría «contraseña» de la cadena «iCloud». Pensé que estaba en la cadena «iniciar sesión».

Responder

A todos los casos en los que lo anterior no funcionó , mi problema parece haber sido porque estaba duplicando UseKeychain yes & AddKeysToAgent yes en todos Perfiles / atajos de teclas ssh. Actualicé mi archivo ~/.ssh/config para declararlos solo una vez y ahora todos se cargan al iniciar sesión sin solicitar contraseñas al inicio, por ejemplo:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar 

Comentarios

  • Recomendaría Host * ir después de reglas específicas de host. Consulte man ssh_config para obtener más detalles.

Respuesta

Además, en macOS Sierra y HighSierra (no sé sobre versiones anteriores), ejecutar ssh-add -A hará que el agente cargue todas las claves cuyas frases de contraseña están almacenadas en Keychain … Muy útil

Respuesta

Agregue la clave pública en:

.ssh/known_hosts 

Pública las claves suelen estar en:

/home/user/.ssh/id_rsa.pub 

Espero que ayude

Comentarios

  • Creo que el authorized_keys
  • De todos modos, esto no ' no funciona si tienes más de una clave.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *