Não adicione hostkey a known_hosts para SSH

94

Eu quero me conectar a um host via SSH, mas não quero que o nome do host seja adicionado ao meu ~/.ssh/known_hosts .

Como posso fazer isso?

    
por Albert 15.05.2010 / 02:03

7 respostas

79
-o "UserKnownHostsFile /dev/null"

deve funcionar.

    
por 15.05.2010 / 02:30
83

Se você quiser esse comportamento porque está trabalhando com servidores em nuvem (AWS EC2, Rackspace CloudServers etc.) ou está constantemente provisionando novas imagens no Vagrant, convém atualizar sua configuração de SSH em vez de adicionar aliases de bash ou mais opções na linha de comando.

Considere adicionar algo como:

Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • Use o máximo possível de regex para o host para ser seguro.
  • Definir o LogLevel como QUIET manterá o aviso que Guillaume mencionou ao aparecer
por 07.06.2012 / 02:28
8

Tenho a sensação de adicionar a chave do host ao seu known_hosts (as pessoas que executam esses serviços são, na minha experiência, inteligentes o suficiente para manter as chaves do host consistentes entre as máquinas que usam o mesmo nome de host) e ativando o StrictHostKeyChecking, desativando O CheckHostIP e o registro em log com o LogLevel ERROR proporcionam a melhor experiência sem sacrificar a segurança. (Ok, sem o CheckHostIP você precisa confiar no DNS, que é um enorme buraco sem DNSSEC ou algo parecido; mas vamos varrer isso para baixo do tapete por enquanto).

Eu uso um arquivo known_hosts somente leitura, então tenho que fazer alguma coisa ou recebo avisos intermináveis sobre não ser possível adicionar entradas a known_hosts.

O que eu uso:

Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR

Gostaria que esses serviços publiquem suas chaves de host SSH em seus sites via HTTPS, para que eu possa copiá-los explicitamente sem ter que se conectar primeiro e me expor potencialmente a um ataque MITM.

    
por 20.05.2013 / 19:40
5

Sugiro

LogLevel ERROR

mais de

LogLevel QUIET

para que você ainda receba "Não foi possível resolver o nome do host" e outros erros desse tipo

    
por 24.01.2013 / 01:19
3

Para uma única sessão ssh, use isso

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
    
por 16.12.2015 / 06:54
2

Você já tentou desativar StrictHostKeyChecking ? Você pode fazer isso com a opção -o ou no arquivo de configuração ~/.ssh/config .

    
por 15.05.2010 / 02:11
0

Eu encontrei as seguintes entradas .ssh / config úteis (LAN com DHCP e DNS):

 CheckHostIP no

 Host *.*
 CheckHostIP yes

O resultado são nomes de máquinas locais "zora" ou "goron" não verificarão endereços IP atribuídos dinamicamente, mas www.mycompany.com ou node42.planetlab.com ainda terão seus IPs estáticos confirmados.

    
por 23.01.2015 / 10:19

Tags