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 developers
grupo 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.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 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.com
como usuário compartilhado git
.
Também não posso descartar EC2
estranhezas (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 beaks
chave para o git
usuá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 -L
impresso 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