Encaminhamento de agente através de nomes de usuários diferentes (Git & Deployment)

7

Esta consulta não está diretamente relacionada ao Git, mas como um dos transportes suportados pelo Git é o SSH, e estou tentando usar o agente de encaminhamento, pensei em pedir esclarecimentos (as páginas man me deixaram desapontar)

Estou tentando automatizar uma implantação de software usando o Capistrano, consegui suspender alguns dos pontos problemáticos (pré-semeando os hosts conhecidos, antes da implantação, etc), mas estou com a seguinte situação .

Minha equipe faz login no servidor como eles, contas de usuários individuais, todos estão em um grupo developers e o umask é 002 . Nenhum dos itens acima é realmente relevante, exceto para dizer que o objetivo é garantir que minha equipe sempre trabalhe como eles, sem exigir privilégios de superusuário.

Nós nos conectamos ao servidor example.com usando o seguinte ~/.ssh/config :

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

O login inicial funciona perfeitamente, ssh example.com abre uma conexão com minha conta de usuário e tudo está em ordem.

O problema vem no próximo passo,

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

Isso está usando a camada de transporte Git + SSH mencionada acima (veja o link acima) - e normalmente deve usar minha chave de agente encaminhado (que eu verifiquei presente com env | grep SSH_AUTH_SOCK )

A resposta é uma simples "autenticação falhada (chave pública) na outra extremidade desligada inesperadamente", suspeito porque o agente do meu usuário não está sendo usado quando eu abordo github.com como seu usuário git compartilhado.

Eu também não posso descartar EC2 estranheza (políticas de segurança, etc) - mas, nesse caso, eu teria esperado um tempo limite ou falha de conexão. Tenho certeza de que estou atingindo github.com e que eles não estão me deixando entrar, porque meu agente não está oferecendo minha beaks key para seu usuário git .

Feliz em adicionar mais informações se eu perdi alguma coisa.

    
por Lee Hambley 08.03.2011 / 10:06

2 respostas

6

O simples fato de ver que o ssh-agent está sendo executado é insuficiente. Veja se a chave que você quer está presente ssh-add -L Você verificou que essa chave funciona de algum outro host? O que ssh-add -L imprime nesse sistema?

Você também pode executar GIT_TRACE=1 git ls-remote ... e imprimir o comando ssh executado. Você pode executar manualmente o comando ssh e fazer com que ele funcione antes de colocar o git na imagem.

    
por 24.05.2011 / 22:35
0

Ninguém realmente respondeu a esta pergunta para que as pessoas que chegam aqui possam se beneficiar ao ver minha resposta a uma pergunta semelhante. link

    
por 03.11.2016 / 16:48