Como dizer ao ssh para não verificar a autenticidade do host de conexão?

0

Eu regularmente tenho que me conectar a hosts atrás de várias redes VPN e provedores, endereçados como 10.0.0.* ou 192.168.*. . Ou seja, cada rede VPN é livre para reservar um desses intervalos quando conectado. Por essa razão, não posso presumir que um endereço 10.0.0.* seja vinculado a um host específico, porque isso dependeria de qual VPN estou conectada. Ou até mesmo resolver para o meu roteador sem fio!

Por esse motivo, desabilitei explicitamente a verificação de chave estrita para hosts com esses endereços de "intranet" que correspondem aos acima, no meu ~/.ssh/config :

Host 192.168.* 10.0.0.*
    StrictHostKeyChecking=no
    UserKnownHostsFile=/dev/null

Eu peguei essas instruções pesquisando e também lendo outras perguntas e respostas do SO.

O problema é que toda vez que eu me conecto aos intervalos de endereços acima, por exemplo, ssh 10.0.0.16 , isso me diz:

Warning: Permanently added '10.0.0.16' (RSA) to the list of known hosts.

que é francamente falso, em virtude do onipresente /dev/null (que eu pessoalmente acho que costuma ser usado como um hack feio) - não há permanência de adicionar nada a /dev/null , é? Apenas desordena meu terminal e me joga toda vez que o vejo lá.

Existe alguma maneira de fazer com que o ssh ignore a impressão digital e não imprima a mensagem confusa acima? Eu não quero alias ssh='ssh 2>/dev/null' ou qualquer coisa insana assim. Eu falei sobre isso de maneira errada? Quais escolhas eu tenho? Algumas outras opções, talvez? O /dev/null é um truque na minha opinião, e é por isso que estou sendo punido.

O que eu não quero fazer é o alias dos nós para alguns nomes de host no lado do cliente no meu ~/.ssh/config , como em esta resposta . Isso é por causa de dois motivos:

  • Não posso simplesmente configurar o ssh para usar um alias (usando a diretiva Host ) para resolver um determinado endereço fe, precisamente porque os endereços são reutilizados por provedores VPN diferentes aos quais me conecto - 10.0.0.15 may Por exemplo, seja um host quando conectado a uma VPN e outra quando conectado a outra VPN. Devo "dividir" meu ~/.ssh/config em vários, um para cada VPN? E utilizar esses arquivos de configuração de acordo?

  • Um nó em questão pode fazer parte de um grupo muito grande de nós na mesma intranet, uma "nuvem" como é chamada atualmente. O número de nós pode chegar a cem. Não tenho certeza de como "mapear em massa" vários desses nós para seus respectivos endereços?

por amn 19.05.2015 / 10:42

2 respostas

1

Ao ignorar as verificações de autenticidade, você está se abrindo para um ataque man-in-the-middle, então você pode querer reconsiderar.

Você pode querer modificar sua configuração de SSH configurando "CheckHostIP" como não e, em seguida, configurando entradas em seu arquivo hosts para cada host e conectando por nome, em vez de hosts. (Nota eu não tentei isso, mas acredito que vai funcionar). Tenha um olhe aqui também.

    
por 19.05.2015 / 11:02
1

Eu sei que esta é uma pergunta antiga, mas eu estava procurando uma resposta para isso. Então, para qualquer googler futuro, aqui está o que encontrei.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host

você pode vincular isso a um alias para facilitar para você.

alias ssh-nocheck='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

ssh-nocheck user@host

Encontrei a resposta no link

-edit: formatação

    
por 21.09.2018 / 10:06