Sempre que uso o git para interagir com um controle remoto, como puxar ou empurrar, é exibida a seguinte mensagem:
Aviso: Adicionado permanentemente '...' (RSA) à lista de hosts conhecidos.
Como posso impedir que essa mensagem irritante seja exibida? É apenas um aborrecimento - tudo funciona corretamente.
The authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?
ou você o suprimiu? Se for, é sempre a mesma impressão digital? Se não for, isso é realmente assustador . A opção menos assustadora seria que, de alguma forma, ele não está conseguindo gravar no arquivo hosts, por isso tenta novamente todas as vezes. Dê uma olhada~/.ssh/known_hosts
?~/.ssh/known_hosts
? (Está listado 5000 vezes?) Existe~/.ssh/config
/ contém alguma coisa (especialmente um valor paraStrictHostKeyChecking
)?known_hosts
arquivo está ruim. Deve ser a chave do host, em uma linha terrivelmente longa. Se você tiver apenas o nome do host (por exemplo), ele não funcionará. Eu recomendo que você remova esse arquivo (se ele contiver apenas as informações desse host único) e permita que o SSH o crie na próxima vez que você se conectar. Deve ficar em silêncio depois disso.Respostas:
Solução: crie um
~/.ssh/config
arquivo e insira a linha:Você verá a mensagem na próxima vez que acessar o Github, mas depois disso não a verá mais porque o host foi adicionado ao
known_hosts
arquivo. Isso corrige o problema, em vez de apenas ocultar a mensagem de log.Esse problema estava me incomodando há algum tempo. O problema ocorre porque o cliente OpenSSH compilado para Windows não verifica o arquivo known_hosts em
~/.ssh/known_hosts
ssh -vvvvvvvvvvvvvvvvvv [email protected]
fonte
~/.ssh/id_rsa
) para conectar-me a um servidor. Como @JeremiahGowdy mencionou, eu tenhodebug3: load_hostkeys: loading entries for host "172.16.3.101" from file "/dev/null"
. Por que o SSH começa a usar/dev/null
como known_hosts depois que eu mudei de chave?~
in~/.ssh/config
é a pasta inicial do usuário. Para abri-lo facilmente, pressione Win-R , digitecmd
Enter . O prompt de comando já deve abrir na sua pasta pessoal. Digitecd .ssh
Enter e, em seguida,start .
Enter para abrir a pasta no Windows Explorer. Em seguida, você pode criar o arquivo de configuração no bloco de notas (sem extensão .txt ao salvar). (Usuários profissionais podem ecoar diretamente para um novo arquivo no próprio prompt de comando;)
). Execute um comando git envolvendo o controle remoto duas vezes (comogit fetch
) e pronto.Adicione a seguinte linha ao seu arquivo de configuração ssh ($ HOME / .ssh / config):
Se estiver executando o ssh a partir da linha de comandos, adicione a seguinte opção à cadeia de comandos:
Por exemplo, o seguinte imprime a versão do gcc instalada no machine.example.org (e sem aviso):
fonte
LogLevel=quiet
é uma má idéia, ele quer que todos os erros sejam exibidos, ele só quer evitar esse erro desagradável específico. Provavelmente porque ele enganou o ssh para usar/dev/null
comoknown_hosts
arquivo, provavelmente porque ele queria desativar aknown_hosts
verificação de impressões digitais, mas não conseguiu, porque os senhores do ssh não permitiram.loglevel=error
ainda exibe "Conexão com <servidor> fechado" quando a conexão é encerrada, o que também é realmente irritante para scripts.Defina
LogLevel
comoERROR
(nãoQUIET
) no~/.ssh/config
arquivo para evitar a visualização desses erros:fonte
Essa mensagem é do SSH, que avisa que você está se conectando a um host ao qual você nunca se conectou antes. Eu não recomendaria desativá-lo, pois isso significa que você pode perder um aviso sobre uma alteração na chave do host, o que pode indicar um ataque MITM na sua sessão SSH.
fonte
~/.ssh/known_hosts
e veja se o seu host está lá.ssh-keyscan
.Para suprimir mensagens de aviso,
ssh
você pode adicionar as seguintes linhas a~/.ssh/config
:Isso desativará avisos, mas não mensagens de erro. Assim como as outras configurações,
~/.ssh/config
você pode configurar oLogLevel
host por host, se desejar um controle mais detalhado.fonte
Significa principalmente que há alterações na chave para esse host
~/.ssh/known_hosts
e não a atualiza automaticamente. Portanto, toda vez que você receber essa mensagem de aviso.Isso acontece frequentemente para a conexão com as máquinas virtuais recriadas, que alteram a chave com o mesmo endereço IP
Solução
Se você tiver apenas uma entrada, poderá excluir o
~/.ssh/known_hosts
arquivo e, após a primeira conexão, a chave estará lá e nenhuma mensagem de aviso depois disso.Se você tiver várias entradas, poderá usar o comando abaixo para remover
Isso funciona bem para mim
fonte
Se você estiver usando um repositório do GitHub, considere usar a versão HTTPS da URL, para evitar esse problema completamente:
Se você clonar seu repositório no aplicativo Windows GitHub, é isso que ele usa para o URL remoto. Talvez eles saibam algo que não sabemos.
fonte
Tenho a mesma pergunta e descobri que não há um
.ssh
arquivo no meu~
. Então, eu apenas crio o.ssh
diretório no~
caminho, e o problema foi resolvido.fonte
Eu entrei no mesmo problema quando comecei a usar uma máquina Windows. No meu caso, foi porque minha configuração do SSH não foi concluída. O Github tem uma documentação muito precisa sobre a configuração do SSH. Uma vez resolvido, o problema foi resolvido.
https://help.github.com/articles/checking-for-existing-ssh-keys/ https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it- para o agente ssh /
fonte
Adicionar chave ssh
arquivo de configuração da caixa
adicione abaixo da linha.
Em seguida, adicione a chave pub e clone seu repositório ... Concluído .....
fonte
Eu havia enfrentado o mesmo erro na máquina virtual Linux / Cent OS e era porque o IP estava mudando após a reinicialização. Para contornar esse problema, defini um IP estático na rede e adicionei essa entrada ao arquivo / etc / hosts. Para IP estático, mencione um valor de intervalo um pouco maior. Por exemplo, se o seu IP atual (ipconfig / ifconfig) for 192.168.0.102, na próxima vez após a reinicialização, este poderá se tornar 192.168.0.103. Portanto, defina seu IP estático nas configurações de IPV4 como 192.168.0.181, o que deve fazer o truque.
fonte
No meu caso, foi porque o administrador que configurou o servidor definiu essas opções em
~/.ssh/config
O que funcionou bem na maioria dos casos, não usando o
~/.ssh/known_hosts
arquivo. Mas para o repositório corporativo do gitlab, toda vez que ele dava o "Aviso: adicionado permanentemente ... à lista de hosts conhecidos".Minha solução foi comentar a
UserKnownHostsFile /dev/null
linha, o que permitiu a criação de~/.ssh/known_hosts
. Então não deu mais avisos depois disso.Você também pode ter entradas antigas / inválidas no seu
known_hosts
.fonte
Estou retirando minha solução devido a contínuos downvotes.
Era a melhor solução sem realmente invadir o código fonte do próprio cliente SSH.
Se alguém estiver interessado, verifique o histórico de edições.
fonte