windows Git clone/pull continuamente congelando em "Store key in cache?"



ssh version-control (6)

  1. Open Putty
  2. Digite o nome do host (como bitbucket.org )
  3. Clique em Abrir
  4. Clique em Sim no pop-up para armazenar em cache a chave do host.
  5. Close Putty

https://ffff65535.com

Estou tentando clonar um repositório da minha conta BitBucket para o meu laptop Windows 10 (executando o GitBash). Concluí todas as etapas necessárias para conectar-se (configurei minha chave SSH, verificada com êxito pelo SSHing [email protected], etc.). No entanto, sempre que tento clonar um repositório, o prompt é interrompido continuamente após a confirmação de que eu quero armazenar em cache a chave do Bitbucket.

[email protected] MINGW64 /C/Repos
$ git clone [email protected]:mygbid/test.git
Cloning into 'test'...
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y

Nenhum arquivo é clonado e o resultado é um repositório vazio. Tentar iniciar um mestre de origem git pull a partir deste repositório também pede para armazenar em cache a chave e, em seguida, trava sem feedback. Apesar de não solicitar que a chave seja armazenada em cache durante o teste do SSH, as operações git sempre solicitam a chave todas as vezes antes de falhar.

Sem mensagens de erro para trabalhar, estou realmente sem saber o que está errado. Eu tentei vários repositórios, incluindo muito pequenos, sem nenhum sucesso.


Consegui fazê-lo funcionar executando o plink diretamente, depois que o concurso estiver em execução, use o comando plink diretamente - plink.exe -agent -v [email protected] e depois que o git funcione sem plink.exe -agent -v [email protected] .


Mesmo depois de executar a solução alternativa mencionada em outras respostas, você pode encontrar um erro como:

ERRO FATAL: Desconectado: Não há métodos de autenticação suportados disponíveis (servidor enviado: publickey)

Para resolver os dois problemas ao mesmo tempo, altere o git bash para usar o SSH em vez do PuTTY, adicionando o seguinte ao seu ~/.profile ( C:\Users\<Username>\.profile ~/.profile ). Se você ainda não possui esse arquivo, crie um novo arquivo com esta linha.

/c/Program\ Files/PuTTY/plink.exe -batch

Em seguida, abra uma nova janela do git bash e tente seu git clone git pull ou git pull novamente.

Observe que isso pode exigir que você crie uma chave SSH se ainda não tiver uma. Para fazer isso, siga as instruções no site Bitbucket .

Veja esta pergunta para obter informações relacionadas.


No seu shell git bash, verifique a existência de GIT_SSH:
echo $GIT<tab><tab>
Se ele existir e estiver definido como massa, execute:
unset GIT_SSH
Você provavelmente desejará colocar isso em um dos scripts de inicialização do git bash.
Esta não é uma solução universal. Funcionou no nosso caso particular.


Para solucionar esse problema, configurei o GitBash para usar o plink com a opção -batch . A opção desativa todos os prompts - o plink terminará sem interrupção e não adicionará nenhuma impressão digital de chave ao cache.

Para adicionar o parâmetro -batch ao comando plink executado pelo GitBash, você pode definir uma opção de configuração do git:

GIT_SSH="/usr/bin/ssh.exe"

Ou defina a variável de ambiente GIT_SSH_COMMAND .

A saída ao clonar um repositório de host desconhecido será semelhante a esta:

git config --global core.sshCommand "plink -batch"

Após esta mensagem, você pode adicionar uma chave ao cache com o comando:

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
Connection abandoned.
fatal: Could not read from remote repository.

OBSERVAÇÃO : Verifique se o plink está no seu PATH . Como alternativa, use o caminho semelhante ao UNIX na opção de configuração do GitBash, por exemplo:

echo y | plink [email protected]

Parece um pouco bobo, mas depois de tentar todas as opções acima, decidi reinstalar o Git Bash com as opções padrão e funcionou.





bitbucket