Encaminhamento de agente por meio de nomes de usuário diferentes (Git e implantação)

Encaminhamento de agente por meio de nomes de usuário diferentes (Git e implantação)

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

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

Minha equipe faz login no servidor como ela mesma, com contas de usuário individuais, todos estão em um developersgrupo e umaské 002. Nenhuma das opções acima é realmente relevante, exceto dizer que o objetivo é garantir que minha equipe sempre possa trabalhar como ela mesma, sem exigir privilégios de superusuário.

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

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

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

O problema surge na próxima etapa,

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 verifiquei presente com env | grep SSH_AUTH_SOCK)

A resposta é simples "falha na autenticação (chave pública) a outra extremidade desligou inesperadamente", suspeito que o agente do meu usuário não esteja sendo usado quando me aproximo github.comcomo usuário compartilhado git.

Também não posso descartar EC2estranhezas (políticas de segurança, etc.) - mas, nesse caso, eu esperaria um tempo limite ou falha de conexão. Sinto-me bastante confiante de que estou acertando github.com- e de que eles não estão me deixando entrar, porque meu agente não está oferecendo minha beakschave para o gitusuário deles.

Fico feliz em adicionar qualquer informação adicional se eu perdi alguma coisa.

Responder1

Simplesmente ver que o ssh-agent está em execução é insuficiente. Verifique se a chave que você deseja está presente. ssh-add -L Você verificou se essa chave funciona em algum outro host? O que é ssh-add -Limpresso 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 fazê-lo funcionar antes de colocar o git em cena.

Responder2

Na verdade, ninguém respondeu a esta perguntaentão as pessoas que vêm aqui podem se beneficiar ao ver minha resposta a uma pergunta semelhante.https://superuser.com/a/1141035/3376

informação relacionada