Como pulo a pergunta “hosts_conhecidos” na primeira vez em que me conecto a uma máquina via SSH com chaves públicas / privadas? [duplicado]

Respostas:

31

Todas as outras respostas atuais estão ausentes no UserKnownHostsFile = / dev / null

Se você quiser fazer isso apenas uma vez, poderá usar:

ssh -o StrictHostKeychecking=no hostname

Se você quiser fazer isso repetidamente, adicione algo como o seguinte ao seu ~ / .ssh / config

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

Para configurar isso no OpenSSH para Windows, basta substituir /dev/nullpor NUL.

Boa explicação em: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

Jason Axelson
fonte
2
Eu tenho procurado por longe para filtrar uma sub-rede por meses (não ativamente), é exatamente isso que eu estava querendo. Temos uma pequena rede de desenvolvimento com dhcp e nossos dispositivos estão sempre obtendo um novo endereço IP, facilitando muito a conexão com eles. Obrigado!
Adam Lewis
13

Desative StrictHostKeyCheckingas ssh_configopções de linha de comando ou.

caos
fonte
/ etc / ssh / ssh_config ou ~ / .ssh / config --- ou qualquer que seja o equivalente é em janelas, se essa é a sua plataforma de cliente
Doug Harris
3

Você pode obter a chave pública, adicioná-la ao arquivo known_hosts e depois refazê-la:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
egridasov
fonte
2
$ ssh -o StrictHostKeychecking=no hostname

Isso fará com que a verificação seja ignorada e a chave do host remoto seja automaticamente adicionada no primeiro login. (Há também a opção CheckHostIP, mas não parece realmente desabilitar a verificação da existência de uma chave).

Nelson
fonte
2
Também gosto de usar UserKnownHostsFile para que a assinatura não seja lembrada no meu sistema. Um bom truque:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
metavida
2

Demorei um pouco para encontrar. O caso mais comum que eu já vi é quando você tem túneis ssh para redes remotas. Todas as soluções aqui produziram avisos que quebraram meus scripts (nagios).

A opção que eu precisava era:

NoHostAuthenticationForLocalhost yes

O qual, como o nome sugere, também se aplica apenas ao host local.

richo
fonte
0

Você pode desativar a verificação, mas é claro que é menos seguro. Em uma situação ideal, o que você deve fazer é conseguir que alguém que já tenha acesso à máquina pegue sua chave de host público e diga ao ssh para usá-la. ou seja: pegue a saída de:

cat /etc/ssh/ssh_host_rsa_key.pub

Anexe o nome do host da máquina e adicione essa linha ao arquivo ~ / .ssh / known_hosts em sua máquina. Você terminará com algo parecido com:

myhost.example.com ssh-rsa AAAAB3Netc ...

Como alternativa, se você quiser apenas pegar a impressão digital da chave, que pode ser mais fácil de transferir por um canal de largura de banda limitado (como uma ligação telefônica), você pode solicitar ao seu assistente:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

fonte
0

Se você quiser apenas desativar temporariamente a verificação de host, faça o login em um sistema LiveCD, por exemplo, renomeie ~/.ssh/known_hostspara outra coisa e altere-a novamente quando terminar.

endólito
fonte
-2
  1. Adicione "StrictHostKeyChecking no" a / etc / ssh / ssh_config
  2. cd ~ / .ssh
  3. rm_conhecidos
  4. ln -s / dev / null known_hosts

Bingo

Cliff Kennedy
fonte
1
Você sabe que tipo de ataque essa pergunta deve impedir, não é?
vonbrand