Respostas:
-o "UserKnownHostsFile /dev/null"
Deveria trabalhar.
grep
mesclar stdout e stderr; também o status de saída pode mudar. Se estiver usando bash
, será melhor usar substituição processo para se livrar da mensagem: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Isso evitará o tubo e, portanto, as alterações correspondentes no manuseio do status de saída.
Se você deseja esse comportamento porque trabalha com servidores em nuvem (AWS EC2, Rackspace CloudServers etc.) ou está constantemente provisionando novas imagens no Vagrant, pode atualizar sua configuração de SSH em vez de adicionar aliases de bash ou mais opções no linha de comando.
Considere adicionar algo como:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
Sinto vontade de adicionar a chave do host ao seu known_hosts (na minha experiência, as pessoas que executam esses serviços são pelo menos inteligentes o suficiente para manter as chaves do host consistentes entre máquinas que servem o mesmo nome de host) e depois ativar StrictHostKeyChecking, desativar o CheckHostIP e o registro com o LogLevel ERROR fornecerá a melhor experiência sem sacrificar a segurança. (Ok, sem o CheckHostIP, você precisa confiar no DNS, que é um enorme buraco sem DNSSEC generalizado ou algo semelhante; mas vamos varrer isso para debaixo 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 poder 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 publicassem suas chaves de host SSH em seus sites via HTTPS, para que eu possa copiá-las explicitamente sem ter que conectar primeiro e potencialmente me expor a um ataque MITM.
Eu sugiro
LogLevel ERROR
sobre
LogLevel QUIET
então você ainda recebe "Não foi possível resolver o nome do host" e outros erros desse tipo
Você já tentou desativar StrictHostKeyChecking
? Você pode fazer isso com a -o
opção ou no arquivo de configuração ~/.ssh/config
.
Eu achei as seguintes entradas .ssh / config úteis (LAN com DHCP e DNS):
CheckHostIP no
Host *.*
CheckHostIP yes
O resultado é que os nomes das máquinas locais "zora" ou "goron" não serão comparados com endereços IP atribuídos dinamicamente, mas www.mycompany.com ou node42.planetlab.com ainda terão seus IPs estáticos confirmados.
grep -v "^Warning: Permanently added"