Desativar StrictHostKeyChecking no ssh


12

Estou tentando conectar-me a um host Linux usando sshe recebo o seguinte erro

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Gostaria de substituir isso, mas não consigo encontrar nenhuma combinação de opções para fazer isso.

Eu provavelmente defini o StrictHostKeyChecking anos atrás, mas não lembro como.

Consultei o man sshque me informa que o arquivo de configuração em todo o sistema é /etc/ssh/ssh_confige o padrão para o arquivo de configuração por usuário ~/.ssh/confignão existe.

EDIT Para esclarecer minha pergunta, a opção está claramente definida. Estou tentando descobrir

  1. Onde as opções estão armazenadas (não tenho os arquivos mencionados na página de manual, que parece estar errada).
  2. Como alterar as opções.

Não estou tentando descobrir como solucionar o problema que estou tendo (sei que posso editar o arquivo known_hosts, mas isso é tedioso toda vez que tento um novo servidor).


Está /etc/ssh_configno meu.
sborsky

@sborsky Eu também tenho isso (que é diferente do homem), mas todas as opções são comentadas.
Milliways

Isso significa o padrão, que de acordo com a página do manual ask. Quando uma chave do host é alterada, o cliente ssh não se conecta, a menos que StrictHostKeyCheckingesteja definido como no. Se a chave do host não mudar com muita frequência, sugiro remover essa chave do host em ~/.ssh/known_hostsvez de alterar a configuração.
sborsky

1
Primeiro você deve descobrir por que foi alterado. Se você não o alterou, pode ser um ataque do MitM e, é claro, você não deve permitir essa chave do host!
Sarge Borsch

nota lateral - depois de remover todos os registros de um determinado host .ssh/known_hosts, continuei recebendo o aviso até descobrir a linha incorreta em outro arquivo chamado .ssh/known_hosts2. aparentemente o OS X usa os dois
billynoah

Respostas:


17

Para desativar a verificação estrita do host no OS X para o usuário atual, crie ou edite ~ / .ssh / config e adicione as seguintes linhas:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Um exemplo típico para os hosts na sua rede local pode ser:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Dependendo do uso do ssh, não recomendo desabilitar a verificação rigorosa de chaves do host para todos os hosts.

Se você apenas deseja remover a entrada para 10.1.1.20, abra ~ / .ssh / known_hosts com um editor de sua escolha e remova a respectiva linha "10.1.1.20 ssh-rsa public-key $ "


Também parece funcionar sem a linha / dev / null.
John2095

6

Você pode simplesmente experimentá-lo como é sem confitguração, apenas na linha de comando:

ssh -o StrictHostKeyChecking=no hostname

Mas acho que não faz tudo o que você precisa. Se você quiser ignorar todas as verificações de chave do host, precisará configurar seu known_hostsarquivo para /dev/nullque nunca haja nada armazenado:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

ou em /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

O primeiro ainda não me permitiu conectar, mas o ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamefez. Ainda não consigo encontrar ONDE o StrictHostKeyChecking está definido!
Milliways

O padrão é "yes", para que não precise ser definido em nenhum lugar para aplicar.
Jakuje 10/09/15

A documentação indica o padrão é sim
Milliways

escolhendo como uma solução ajudaria se ele ajudou a resolver o seu problema;)
Jakuje
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.