Tento enviar as alterações do meu repositório local para um repositório remoto. Quando eu digito:
git push origin
Estou tendo o erro a seguir:
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 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
Como posso resolver isso? Estou usando o git na linha de comando do Windows 7.
Editar
Quando tento fazer um ssh simples
ssh user@hostname
Estou tendo o erro a seguir:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
De alguma forma, ele não criará o diretório, porque o caminho é inválido. Como consertar isto?
@eckes: Edit2
Minha casa está configurada como %HOMEDRIVE%%HOMEPATH%
correto?
$HOME
não está configurado corretamente. Tente definir aHOME
variável de ambiente no Windows usandoMy Computer
-> clique com o botão direito ->Properties
-> TabAdvanced
-> BotãoEnvironment Variables
/c//
(presumivelmente uma letra de unidade) você ainda tem%HOMEDRIVE%
... Você pode economizar algum tempo mexendo com o valor e repetindo-o?HOMEDRIVE
eHOMEPATH
e conjuntoHOME
para o valor resultante ...Respostas:
A mensagem significa que a chave do host de
origin
não está presente no arquivo de hosts confiáveis.Para contornar isso, abra uma conexão SSH simples para
origin
e o SSH perguntará se você deseja confiar no host remoto (do console Git):Se você confiar no host remoto (ou seja, tipo
yes
), o SSH adicionará sua chave à lista de hosts conhecidos.Depois disso, você deve ser capaz de fazer o seu
git push origin
.Como alternativa, você também pode adicionar manualmente a chave de
origin
a.ssh/known_hosts
, mas isso requer que você aderir ao formato doknown_hosts
arquivo, conforme descrito na página do manual desshd
(Seção FORMATO DE ARQUIVO authorized_keys ).fonte
known_hosts
arquivo.Para aqueles que estão configurando o MSYS Git no Windows usando PuTTY por meio do prompt de comando padrão, a maneira de adicionar um host ao cache do PuTTY é executar
Por exemplo:
Basta responder
y
e, em seguida, Ctrl + C o resto.No entanto, verifique a impressão digital. Este aviso existe por um bom motivo. Impressões digitais para alguns serviços git (edite para adicionar mais):
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
fonte
plink
executando$ set | grep GIT_SSH
e verificandoGIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
-P
para selecionar a porta, tais como:plink.exe example.com -P 2222
. Consegui clonar do github, mas não do meu servidor pessoal, e isso me confundiu profundamente.Tente fazer um "set | grep -i ssh" no prompt do Git Bash
Se sua configuração for como a minha, você provavelmente tem estes conjuntos:
Eu fiz um
e funcionou depois disso ... Acho que o putty salva suas chaves em outro lugar como $ HOME / .ssh ou algo assim ... (Também tive um problema em uma caixa em que $ HOME estava definido como "C: \ Usuários \ usrnam "em vez de" / C / Users / usrnam / "
de qualquer forma, sua milhagem pode variar, mas isso resolveu para mim. :-)
(provavelmente apenas fazer o GIT_SSH não definido é o suficiente, mas eu estava indo bem)
Observação: se não definir não funcionar para você, tente o seguinte:
fonte
unset GIT_SSH
funcionou para mim também, embora eu tenha que fazer isso toda vez que lanço o git bash, o que é muito chato. Alguma ideia de como automatizar isso?Suspeito que sua
GIT_SSH
variável de ambiente esteja definida como%ProgramFiles(x86)%\putty\plink.exe
. Por alguma razão, o PLink não usa o.ssh/known_hosts
arquivo em seu diretório de usuário para armazenar as chaves de hosts remotos.Se este for realmente o seu caso, e pode ser propositalmente se você quiser usar o concurso, você precisa usar o PLink para se conectar ao host primeiro.
Você deve receber uma mensagem semelhante
Depois de responder
y
à pergunta e se conectar com êxito ao host remoto, tudo estará pronto. Vá em frente e tente empurrar novamente.fonte
"$GIT_SSH" -P 7999 [email protected]
Apenas enviar um ssh para o host não é suficiente, pelo menos no Windows. Isso adiciona a chave do host,
ssh/known_hosts
mas o erro ainda persiste.Você precisa fechar a janela do git bash e abrir uma nova. Então, o cache de registro é limpo e o push / pull funciona.
fonte
ssh/known_hosts
está relacionado a quê ?,% USERPROFILE% Estou tendo este problema no Win 7, e nenhuma solução ...Rene, sua
HOME
variável não está configurada corretamente. Altere parac:\Users\(your-username)
ou apenas para%USERNAME%
.fonte
Solução com Plink
Salve este script Python em
known_hosts.py
:Testado em Win7x64 e Python 2.7 .
Então corra:
E escolha importar para o registro. O keyscan irá recuperar a chave pública para o domínio (eu tive meus problemas com o bitbucket), e então o script Python irá convertê-la para o formato Plink.
fonte
Tive o mesmo problema e esqueça de conectar - se ao SSH na porta onde está o repositório atual , não apenas a porta SSH geral, então a chave do host é diferente!
fonte
Basta abrir o Putty e tentar estabelecer conexão com o servidor remoto para o qual deseja enviar seu código. quando a caixa de diálogo for exibida, pressione Sim (você confia no controle remoto), então tudo ficará bem.
fonte
Ambiente de trabalho:
Primeiro: Elimine o putty known_hosts no registo de acordo com o Regedit.
Então: Executar o comando
%GIT_SSH% user@hostname
no cmd do Windows resolve o problema.Espero que ajude todos vocês.
fonte
Eu também tive o mesmo problema quando estava tentando clonar um repositório em minha máquina com Windows 7. Tentei a maioria das respostas mencionadas aqui. Nenhum deles funcionou para mim.
O que funcionou para mim foi executar o programa Pageant (agente de autenticação Putty). Uma vez que o Pageant estava rodando em segundo plano, eu fui capaz de clonar, enviar e puxar de / para o repositório. Isso funcionou para mim, talvez porque eu configurei minha chave pública de forma que, sempre que for usada pela primeira vez, uma senha seja exigida e o Pageant seja iniciado.
fonte
Connection abandoned
, mas algo comoAccess denied (private key)
Mudar de PuTTY para OpenSSH corrigiu esse problema para mim, sem a necessidade de remover GIT_SSH etc.
fonte
Resolvi problema semelhante usando esta solução alternativa .
Você apenas tem que mudar para o Git Embedded, apertar, pressionar o botão Yes e então voltar para o System Git.
Você pode encontrar esta opção em
fonte
C:\Users\{UserName}\AppData\Local\SourceTree\app-2.5.5\tools\putty> .\plink.exe {YourNewHost}
Conforme respondido por Roman Starkov ,
plink
precisa adicionar o host ao cache.Para pessoas que usam extensões Git :
(substitua pelos caminhos reais)
por exemplo
Nota : Certifique-se de usar o mesmo plink / klink que as extensões Git estão usando!
fonte
Adicionar o host diretamente com o Bash não resolveu o problema, o erro ainda ocorria ao usar 'Fetch all' nas extensões Git. Ao usar 'Pull' em um branch, o host necessário foi adicionado automaticamente pelas extensões Git com uma tela pop-up Bash. Depois de fazer isso, fui capaz de usar 'Fetch All' novamente. Não tenho certeza do que é feito pelas extensões Git de forma diferente.
fonte
Eu tentei todos os métodos acima, mas nenhum deles conseguiu resolver o mesmo problema no meu laptop. Finalmente, em vez de empurrar o branch para a origem no git bash, eu toco para usar a opção push do TortoiseGit para fazer o push, então uma janela aparece pedindo que eu adicione a nova chave de host ao cache, depois de clicar no botão sim, tudo vai bem agora.
Espero que ajude a todos vocês.
fonte
Mudei um disco rígido, instalei o Windows. Quando tentou fazer upload de arquivos recebeu esta janela de comando.
Pressionei "y", depois Ctrl + C. Abri
putty.exe
, adicionei uma tecla antiga que retornou ao git e empurrei os arquivos.fonte
Basta desinstalar as extensões Git e instalar novamente escolhendo OpenSSH em vez de
fonte
No Windows 7 ou 10, o truque que funcionou para mim é excluir a variável de sistema GIT_SSH. Ele foi configurado antes para usar o Plink e agora foi substituído pelo Putty. Isso estava causando um erro no Plink.exe
Houve também uma instalação antiga do Git (versão de 32 bits) e atualização para o Git (por exemplo, Git-2.20.1-64-bit.exe), pois o PC era um sistema operacional de 64 bits.
De qualquer forma, o Putty / Plink nem era usado pelo Git já que na instalação do Git era padrão usar Open SSH.
fonte
Se você receber a mensagem sobre a chave de host não reconhecida ao fazer operações git push / pull usando ATLASSIAN SOURCETREE, você não terá a capacidade de responder s / n e a operação push / pull será cancelada sem armazenar a chave em cache. No entanto, ir para SourceTree Tools-> Options (General Tab) e alterar SSH Client em (em SSH Client Configuration) de PuTTY para OpenSSH permitirá que a chave seja armazenada em cache sem alterar nada mais.
fonte