He estado buscando una solución al siguiente problema durante las últimas 2 horas sin suerte.
Desarrollo:
Estoy usando la autenticación de clave pública para conectarme a mis servidores. Utilizo el reenvío de ssh-agent para no tener que administrar claves públicas / privadas.
Digamos que tengo servidores A, B and C
.
Esto funciona muy bien si me conecto desde LOCAL ---> A ---> B
.
También funciona muy bien si lo hago LOCAL ---> A ---> C
.
Ahora, si lo intento LOCAL ---> A ---> B ---> C
, SSH no puede conectarse B to C
.
Vale la pena señalar: me conecto al servidor A como liquidez, mientras que me conecto al servidor B como root. Conectarse al servidor B como liquidez soluciona el problema, pero esta no es una opción para mí.
Según la recomendación de un usuario, uso ssh -A
cada vez para asegurarme de que el reenvío de agente esté habilitado.
Encontré una pregunta similar, sin respuesta aquí: ¿es posible encadenar el reenvío de ssh-agent a través de múltiples saltos?
De acuerdo con @Zoredache aquí: /server//a/561576/45671 Solo necesito ajustar la configuración de mi cliente en cada sistema intermedio. Lo cual creo que hice.
ProxyCommand
salto (como se explica aquí ) en lugar de reenviar el agente SSH. Para su enfoque, tendrá que confiar en todas las máquinas de la cadena porque pueden (ab) usar sus claves privadas. También me gusta mucho el enfoque ProxyCommand porque la verificación de hosts conocidos se realiza localmente y, además, puede configurar la cadena en su configuración SSH para que pueda usar un solo comando para conectarse a C.Respuestas:
Para que el reenvío de agentes funcione a través de múltiples saltos, simplemente necesita ajustar la configuración de su cliente en cada sistema intermedio para que el reenvío de agentes.
Podría ser tan simple como asegurarse de que
/etc/ssh/ssh_config
tiene esto configurado. Pero si tiene configuraciones por cliente,~/.ssh/config
es posible que también deba ajustar esa configuración.Puede ver si se produjo el reenvío del agente o si hubo un error si solo agrega la
-v
opción.Verifique también que tenga un conjunto de variables de entorno válido.
fuente
ssh-add -l
para enumerar las claves que ssh cree que puede obtener a través de su agente. ¡Asegúrese de reenviarlo en cada conexión!Requesting authentication agent forwarding.
en su salida de depuración. Si intentó.bash_profile
iniciar ssh-agent, elimínelo de allí o su agente comenzará nuevamente sin ninguna identidad.