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
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:
-
Asegúrese de haber completado el Paso 1 anterior para almacenar la llave en el llavero.
-
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 llamadoconfig
. -
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íneaIdentityFile
para cada uno de ellos. Por ejemplo, tengo una línea adicional que diceIdentityFile ~/.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. -
¡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 ' La solución de div para modificar el archivo
.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 indicadorK
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. Consulteman 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.
id_rsa
tiene una contraseña.ssh-add
, sino simplemente ejecutarssh
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.