Ao usar o GIT, tenho problemas ao usar o GIT sobre SSH e, como funciona muito bem no trabalho e em casa com um modem diferente, é obviamente o meu modem doméstico que está funcionando. Não tenho problemas para conectar-me por HTTP.
Portanto, suponho que seja um problema SSH, mas não sou especialista em usá-lo diretamente. Existe algum comando que eu possa executar que configure uma conexão de "teste" e me informe exatamente quando e onde o problema ocorre?
Praticamente todos os comandos "maiores" (como fetch
, clone
ou push
com muitos dados) de git
(mesmo quando executados com -v
) apenas "travam" no meio da conexão remota, sem indicação de por que eles pararam, de modo que não servem para nada. .
Existe alguma maneira de obter mais detalhes sobre o que está acontecendo na conexão SSH?
fonte
GIT_SSH_COMMAND="ssh -v" git clone example
posso depurar a versão SSH, é impressa após aCloning into
mensagem, mas falha emgit clone
. Depois de removê-GIT_SSH_COMMAND
lo, funciona. No final, serviu ao propósito.git -c core.sshCommand="ssh -vvv" pull
git config --global core.sshCommand "ssh -vvv" git clone example
Eu tive um problema parecido. Para depuração, adicionei uma linha no meu ssh_config. Aqui está como eu fiz isso:
Lá você encontrará uma linha como esta:
Nesse caso, o host é
github.com
. Agora você pode adicionar uma entrada de host na sua configuração ssh:E adicione:
Ao usar operações git, você deve receber muitas mensagens de depuração agora. Para receber menos mensagens de depuração, tente usar
DEBUG1
Para versões GIT> = 2.3.0, consulte a resposta do @Flimm para obter uma solução mais inteligente.
fonte
Lendo
man git
, existem algumas variáveis ambientais úteis que você pode definirGIT_TRACE_PACKET
eGIT_TRACE
. Por exemplo:Um pouco tarde para o jogo, mas espero que isso ajude alguém!
fonte
Por
man ssh
:Então tente
ssh -v
. Se isso não informar o que você precisa saber, você pode adicionar um ou doisv
s para obter informações de depuração ainda mais detalhadas. Para o Github em particular, tentessh -vvvT [email protected]
.Geralmente, na minha experiência, uma sessão SSH interrompida durante a instalação acontece quando o cliente não pode concluir o método de autenticação escolhido. Verifique se sua chave privada está no lugar certo, com as permissões corretas e se corresponde à chave pública que você deu ao Github.
fonte
push
/pull
no repositório sem problemas. Mas, muitas vezes, apenas "trava" no meio do comando e não continua (especialmente quando transfiro grandes quantidades de dados, como um grandeclone
oupush
). Não há mensagens de erro, apenas fica lá e não continua.Não vejo uma maneira de dizer ao git (1) o comando externo a ser usado para o ssh (1), mas como solução alternativa, simplesmente renomeie / path / to / ssh para /path/to/ssh.orig, crie um shell wrapper de script / caminho / para / ssh e adicione os sinalizadores -v:
Recebo uma saída detalhada ao executar comandos git operando em um transporte ssh. Após a depuração, exclua o script e restaure /path/to/ssh.orig para / path / to / ssh.
fonte
/usr/bin
, considere colocar o script do wrapper/usr/local/bin
.GIT_SSH
pode ser configurada para apontar para o binário que você deseja que o Git use.