
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
Host
diretiva) 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.15
pode, por exemplo, ser um host quando conectado a uma VPN e outro quando conectado a outra VPN. Devo "dividir"~/.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 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.