tl; dr: Tengo identidades en el agente ssh. Todos esos menos uno se acostumbran; uno se agrega al agente y al llavero cuando lo uso, pero luego se me solicita la frase de contraseña una y otra vez, como si la clave no estuviera en el agente (y si no lo estuviera, como si el agente no pudiera obtenerla) la frase de contraseña fuera del llavero).
Detalles:
Tengo un montón de claves SSH (RSA, protocolo 2) para las cuales uso agente y almaceno las frases de contraseña en el llavero.
Para una (y solo una) de esas claves, y solo recientemente, SSH comenzó a ignorar la identidad en el agente. Es decir:
- Me conecto usando la tecla (
ssh -i keyfile user@host
,IdentitiesOnly
es cierto paraHost *
) - OS X pide la frase de contraseña; Configuré la casilla de verificación guardar en llavero.
- la identidad se agrega implícitamente al agente, se agrega la entrada del llavero
- Cierro la conexión
- Me reconecto
- Nuevamente me piden la frase de contraseña, como si las entradas de agente y / o llavero no existieran
He verificado que: - La entrada del llavero está configurada en "permitir siempre" para ssh, ssh-add y ssh-agent. - El archivo de clave tiene los permisos correctos establecidos. - La identidad se carga en el agente. - Iniciar sesión funciona con esa ID, siempre que escriba la frase de contraseña cada vez.
Lo que he intentado:
- Eliminando toda la entrada del llavero, luego comenzó ssh nuevamente. Me solicitaron la frase de contraseña, la ingresé, se agregó la entrada en el llavero y la identidad en el agente; la conexión funcionó, la próxima vez me volvieron a preguntar.
- Cambiar el nombre del archivo de clave en sí. Se crea una nueva entrada de llavero, la conexión funciona, pero en la próxima conexión me vuelven a pedir la frase de contraseña.
- He corrido
ssh-add -D
seguido dessh-add -k
. He verificado que la clave ofensiva se encuentra entre las identidades agregadas; entonces, en principio, la comunicación entre el agente y el llavero parece funcionar. Todavía pregunta de nuevo.
Esto no sucede con ninguna de mis otras claves y la clave en sí misma funciona para SSH. También se vuelve realmente molesto ya que uso frases de contraseña bastante fuertes para las claves.
Resulta que el problema era que tenía demasiadas identificaciones en mi agente. Normalmente, ssh ignorará la
-i
opción una vez que tenga identidades en el agente y solo usará las identidades en el agente a su vez. Si tiene más de, digamos, 5, los servidores los rechazarán a todos y luego volverán a usar contraseñas porque hubo demasiados intentos fallidos.La configuración
identitiesonly
enhost *
ssh va por la-i
opción (oidentityfile
en la de.ssh/config
nuevo, pero seguirá buscando en el agente si la identidad especificada ya está desbloqueada, por lo que se solucionó este problema desde cualquier ángulo).fuente
Siga el blog de Dave Dribin ( ssh-agent en Mac OS X 10.5 (Leopard)
Debe ejecutar el comando seguir:
Después de eso, verifica tus configuraciones a través de:
fuente