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


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.


/ 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

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).


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.


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

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.


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

Bingo


1
Você sabe que tipo de ataque essa pergunta deve impedir, não é?
vonbrand
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.