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 los inicios de sesión.
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 los inicios de sesión.
En OSX, el cliente ssh-add
tiene un argumento especial para guardar la frase de contraseña de la clave privada en el llavero OSX, lo que significa que su inicio de sesión normal lo desbloqueará para usarlo con ssh. En OSX Sierra y versiones posteriores, también debe configurar SSH para usar siempre el llavero (consulte el Paso 2 a continuación).
Alternativamente, puedes usar una clave sin una frase de contraseña, pero si prefieres la seguridad que es ciertamente aceptable con este flujo de trabajo.
Solo haz esto una vez:
ssh-add -K ~/.ssh/[your-private-key]
Ingrese su contraseña clave, y no se le volverá a preguntar.
(Si está en una versión pre-Sierra de OSX, ya ha terminado, no se requiere el Paso 2).
Parece que OSX Sierra eliminó el conveniente comportamiento de persistir las claves entre los inicios de sesión, y la actualización a ssh ya no usa el llavero de forma predeterminada. Debido a esto, se le pedirá que ingrese la 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 del hilo de github . Así es como lo configuras:
Asegúrese de haber completado el Paso 1 anterior para almacenar la clave en el llavero.
Si aún no lo has hecho, crea un archivo ~/.ssh/config
. En otras palabras, en el directorio .ssh
en su directorio de inicio, cree un archivo llamado config
.
En ese archivo .ssh/config
, agregue las siguientes líneas:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
Cambie ~/.ssh/id_rsa
al nombre de archivo real de su clave privada. Si tiene otras claves privadas en su directorio ~.ssh
, también agregue una línea IdentityFile
para cada una de ellas. Por ejemplo, tengo una línea adicional que lee IdentityFile ~/.ssh/id_ed25519
para una segunda clave privada.
El UseKeychain yes
es la parte clave, que le dice a SSH que busque en su llavero OSX la frase de contraseña clave.
Eso es todo! La próxima vez que cargue una conexión ssh, probará las claves privadas que ha especificado y buscará su contraseña en el llavero OSX. No es necesario escribir una frase de contraseña.
Se le pedirá la contraseña cada vez que lo haga porque su llavero de "inicio de sesión" se está bloqueando después de inactividad y / o inactividad o, en su caso, un reinicio. Hay dos formas de resolver esto por ti.
Cambie la configuración de su llavero de "inicio de sesión". Suponiendo que su clave ssh esté almacenada en el llavero de "inicio de sesión".
Genere otra clave SSH sin usar una frase de contraseña.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Ya no se te pedirá una contraseña de llavero.
Tuve un problema similar, ya que se me pedía CADA VEZ para mi frase de contraseña de clave de pub.
Por sugerencia del usuario "trisweb" anterior, activé estas opciones para ~ / .ssh / config:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
PERO aún se me pedía cada vez que quería usar ssh.
Finalmente, activé "ssh -v" y encontré esta línea de depuración:
debug1: key_load_private: frase de contraseña incorrecta proporcionada para descifrar la clave privada
Luego abrí mi llavero en "Keychain Access.app", encontré la clave llamada "SSH: /Users/username/.ssh/id_rsa" y la abrí.
Hice clic en "Mostrar contraseña" para revelar la contraseña y, de hecho, encontré que la frase de contraseña en el llavero era una frase de contraseña antigua.
Actualicé la contraseña en Acceso a Llaves, y ahora funciona sin contraseña.
También podría haber actualizado la frase de contraseña con esta frase:
ssh-keygen -p -f ~ / .ssh / id_rsa
Además, en macOS Sierra y HighSierra (no sé acerca de las versiones anteriores), ejecutar ssh-add -A
hará que el agente cargue todas las claves cuyas frases de contraseña están almacenadas en el llavero ... Muy útil
Para todos donde no funcionó lo anterior, mi problema parece haber sido porque estaba duplicando el UseKeychain yes
& AddKeysToAgent yes
en todos los perfiles / accesos directos de claves ssh. Actualicé mi archivo ~/.ssh/config
para declarar esto solo una vez y ahora todos se cargan al iniciar sesión sin pedir 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
Agregar la clave pública en:
.ssh/known_hosts
La clave pública generalmente está en:
/home/user/.ssh/id_rsa.pub
Espero que ayude