ssh -A no habilita correctamente el reenvío de la conexión del agente de autenticación

17

me encanta ssh -A, que me permite usar mi clave ssh local al establecer una conexión desde un servidor remoto. Por ejemplo, yo ssh -A host1.example.com y luego desde allí puedo ssh host2.example.com (o use git) y usa mi clave ssh de la máquina original, que en este caso debería se mi mac Aunque esto siempre me ha funcionado en Debian / Ubuntu, no funciona en mi nuevo mac (Lion).

¿Que me estoy perdiendo aqui? ¿Cómo configuro ssh para que funcione correctamente con -A? ¿Necesito un ssh que no sea el estándar de MacOS?

rfay
fuente

Respuestas:

29

En realidad, la respuesta muy simple es que tienes que correr

ssh-add

y entonces todo funciona.

Básicamente, macOS ya tiene configurado ssh-agent para ti, pero después de cada reinicio debes agregarle tus claves. ssh-add le da a ssh-agent acceso a sus claves para el ciclo de arranque actual. Tendrá que ingresar la contraseña de su clave privada si ha creado una.

rfay
fuente
Eso solucionó mi último problema de reenvío de ssh después de la actualización a macOS (después de 5 años, sigue siendo una respuesta útil, gracias @rfay)
23tux
Esto funciona, pero una explicación de por qué sería útil / ayuda a las personas a recordar este comando.
Adam Parkin
1
@AdamParkin agregó otro párrafo explicando.
rfay
1

El concepto detrás ssh -A son agentes ssh. Se ejecutan en segundo plano y, mediante el uso de variables de entorno, el agente puede ubicarse y utilizarse automáticamente para la autenticación al iniciar sesión en otras máquinas mediante ssh. Echa un vistazo a la página de manual de ssh-agent para más detalles.

Con Mac OS X, el ssh-agent debe iniciarse a pedido.

Para más información, ver:

Florian Feldhaus
fuente
1

A partir de OS X 10.8 debes hacer esto una vez:

sudo touch /var/db/useLS

Y agrega esto como parte de tu ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Nota: esta receta es parte de mi beduino guiones.

sorin
fuente
Hm, acabo de probar esto; el agente comienza entonces, pero aún tiene que ssh-add para que algo funcione. Así que ssh-add solo sigue siendo la respuesta, por lo que yo entiendo. Supongo que debería agregarlo a mi .bash_profile.
rfay
lol, ¿qué pasa si mi clave privada necesita una frase de contraseña?
Jeffrey04