Double ssh solicita la frase de contraseña para desbloquear una clave RSA, pero no debería

Double ssh solicita la frase de contraseña para desbloquear una clave RSA, pero no debería

Tengo dos máquinas, M1 y M2, ambas con OS X, y una tercera máquina, L, con Linux. M1 y M2 tienen claves RSA desbloqueadas en el llavero, por lo que puedo:

  • ssh de M1 a M2 sin que se le solicite una contraseña o la frase de contraseña de la clave
  • ssh de M2 ​​a L sin que se le solicite una contraseña o la frase de contraseña de la clave

Sin embargo, cuando hago ssh de M1 a M2 y luego a L (mientras todavía estoy físicamente en M1), ¡me pide la frase de contraseña de la clave! Intenté desbloquear manualmente login.keychainusando el securitycomando, pero parece no tener ningún efecto.

¿Qué pasa? ¿Cómo puedo duplicar ssh sin escribir ninguna contraseña?

Respuesta1

El llavero funciona exactamente como debería, lo que hace -A es reenviar las claves cargadas desde M1 a M2 y luego a L. Sospecho que cuando inicia sesión en M2, no inicializa sus claves/inicializa una sesión completa porque el El proceso de inicio de sesión gráfico no ocurrió junto con todos sus efectos secundarios.

Si desea reenviar su agente a cualquier lugar donde utilice ssh, debe crear el archivo ~/.ssh/config y agregar una entrada para el * host con ForwardAgent configurado en yes:

Host *
    ForwardAgent yes

Además, puede ser más específico sobre a qué host desea reenviar a su agente reemplazando ese * con un nombre de host.

Respuesta2

Estás intentando iniciar sesión en L desde M2. Eso significa que M2 debe tener sus credenciales (clave y frase de contraseña). Pero sus credenciales en realidad están en M1.

Puedes copiar tus credenciales a M2, pero luego tendrás que interactuar con el llavero en M2. Alternativamente, puede indicarle a M2 que se comunique con el llavero de M1 en lugar del llavero de M2. De hecho, este es el método habitual, y algunas instalaciones lo tienen funcionando de inmediato, pero aparentemente no el suyo.

Permitirreenvío de agentesde M1 a M2. En la línea de comando, con OpenSSH, pase la -Aopción (es decir, ejecutar ssh -A M2en M1). También puedes poner la ForwardAgentdirectiva en ~/.ssh/config. Quizás también haya una forma GUI de hacer esto en OSX.

información relacionada