Problema con ssh-agent y / o Mac keychain en Mac

3

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, IdentitiesOnlyes cierto para Host *)
  • 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 -Dseguido de ssh-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.

Bernd Haug
fuente

Respuestas:

2

No debe usar el argumento '-i keyfile' una vez que la identidad esté presente en su agente.

Prueba esto:

ssh-add keyfile
ssh -v user@host

(La v te ayudará a depurar)

bbaassssiiee
fuente
Gracias por la buena pista, pero no fue así ... al menos me trajiste de nuevo para notar que ya lo había resuelto, ¡y cómo! :)
Bernd Haug
0

Resulta que el problema era que tenía demasiadas identificaciones en mi agente. Normalmente, ssh ignorará la -iopció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 identitiesonlyen host *ssh va por la -iopción (o identityfileen la de .ssh/confignuevo, pero seguirá buscando en el agente si la identidad especificada ya está desbloqueada, por lo que se solucionó este problema desde cualquier ángulo).

Bernd Haug
fuente
0

Siga el blog de Dave Dribin ( ssh-agent en Mac OS X 10.5 (Leopard)

Debe ejecutar el comando seguir:

ssh-add -k /path/to/your/private/key

Después de eso, verifica tus configuraciones a través de:

sh-add -L
d.danailov
fuente