Reenvío de agentes a través de diferentes nombres de usuario (Git y Deployment)

Reenvío de agentes a través de diferentes nombres de usuario (Git y Deployment)

Esta consulta no está directamente relacionada con Git, pero como uno de los transportes admitidos por Git es SSH y estoy intentando utilizar el reenvío de agentes, pensé en pedir una aclaración (las páginas de manual me han decepcionado).

Estoy intentando automatizar una implementación de software usando Capistrano, logré suspender algunos de los puntos débiles (preinicio de los hosts conocidos, antes de la implementación, etc.), pero me queda la siguiente situación.

Mi equipo inicia sesión en el servidor como ellos mismos, cuentas de usuario individuales, todos están en un developersgrupo y umaskes 002. Nada de lo anterior es realmente relevante, excepto decir que el propósito es asegurar que mi equipo siempre pueda trabajar como él mismo, sin requerir privilegios de superusuario.

Nos conectamos al servidor example.comusando lo siguiente ~/.ssh/config:

Host example.com
  User beaks
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa_business

El inicio de sesión inicial funciona perfectamente, ssh example.comabre una conexión con mi cuenta de usuario y todo está en orden.

El problema viene en el siguiente paso,

git ls-remote [email protected]:project/repository.git

Esto utiliza la capa de transporte Git+SSH antes mencionada (ver enlace arriba) y normalmente debería usar mi clave de agente reenviado (con la que he verificado que está presente env | grep SSH_AUTH_SOCK)

La respuesta es un simple "error de autenticación (clave pública), el otro extremo se colgó inesperadamente", sospecho que se debe a que el agente de mi usuario no se utiliza cuando me acerco github.comcomo su usuario compartido git.

Tampoco puedo descartar EC2rarezas (políticas de seguridad, etc.), pero en ese caso, habría esperado un tiempo de espera o una falla de conexión. Me siento bastante seguro de que estoy acertando github.comy de que no me dejan entrar porque mi agente no ofrece mi beaksclave a su gitusuario.

Feliz de agregar información adicional si me perdí algo.

Respuesta1

Simplemente ver que ssh-agent se está ejecutando no es suficiente. Mire para ver si la clave que desea está presente. ssh-add -L ¿Ha verificado que esta clave funciona desde algún otro host? ¿Qué ssh-add -Limprime en ese sistema?

También puede ejecutar GIT_TRACE=1 git ls-remote ...e imprimirá el comando ssh que ejecuta. Puede ejecutar manualmente el comando ssh y hacerlo funcionar antes de incorporar git a la imagen.

Respuesta2

En realidad nadie respondió a esta pregunta.por lo que las personas que vengan aquí pueden beneficiarse al ver mi respuesta a una pregunta similar.https://superuser.com/a/1141035/3376

información relacionada