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

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

Regularmente tenho que me conectar a hosts atrás de múltiplas redes e provedores VPN, endereçados como ou 10.0.0.*Ou 192.168.*.seja, cada rede VPN é livre para reservar qualquer um desses intervalos quando conectada. Por esse motivo, não posso presumir vincular um 10.0.0.*endereço a um host específico, pois isso dependeria de qual VPN estou conectado. Ou até mesmo resolva usar meu roteador sem fio!

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

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

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

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

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

o que é francamente falso, em virtude do onipresente /dev/null(que eu pessoalmente acho que costuma ser usado como um truque feio) - não há permanência para adicionar nada /dev/null, não é? Isso apenas bagunça meu terminal e me confunde toda vez que o vejo lá.

Existe alguma maneira de o ssh ignorar a impressão digital e não imprimir a mensagem confusa acima? Eu não quero alias ssh='ssh 2>/dev/null'nem nada insano assim. Eu fiz isso da maneira errada? Que escolhas eu tenho? Algumas outras opções, talvez? Isso /dev/nullé um hack na minha opinião, e é por isso que estou sendo punido.

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

  • Não posso simplesmente configurar o ssh para usar um alias (usando a Hostdiretiva) para resolver um endereço específico fe, precisamente porque os endereços são reutilizados por diferentes provedores de VPN aos quais me conecto - 10.0.0.15pode, por exemplo, ser um host quando conectado a uma VPN e outro quando conectado a outra VPN. Devo "dividir" ~/.ssh/configem 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 bastante 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.

Responder1

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

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 emhttps://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

-editar: formatação

Responder2

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 SSH definindo "CheckHostIP" como não e, em seguida, configurando entradas em seu arquivo hosts para cada host e conectando-se por nome em vez de hosts. (Observe que não tentei isso, mas acredito que funcionará). Tenha umolharaqui também.

informação relacionada