Quando você acessa uma máquina, o nome dela e sua respectiva chave pública ficam armazenados em ~/.ssh/known_hosts. Então quando você dá "ssh a[tab]" o bash vai mostrar os hosts que começam com a. Concorda que uma listagem de todas as máquinas que você já logou é uma informação muito quente para ser deixada às claras? Vejamos, no caso de alguém ter pego sua senha e conseguido logar em sua conta, essa pessoa teria acesso aos nomes dessas máquinas e poderia tentar sua senha nelas e expandir a invasão. Só de saber de bandeja mais máquinas com ssh para tentar ataques de dicionário, força bruta, etc, já vale apena.
Vamos mais além, caso você use o putty no Windows (usando Windows meu, pela mor) o seu histórico fica salvo no registro, facilmente legível por um bot, worm, vírus, etc. Existe um artigo que fala sobre esse assunto, chamado known_hosts Address Harvesting. Mais informações você encontra aqui.
Solução pra isso: usar a opção HashKnownHosts do OpenSSH. Todas os hostnames do seu arquivo known_hosts serão armazenados como um hash, tornando impraticável saber quais máquinas você logou. Porém, essa opção não é ativada por padrão no OpenSSH. O Debian já vem com ela habilitada, segurança++. No CentOS não, segurança--.
Edite o seu ~/.ssh/config ou deixe ativado globalmente no seu sistema em /etc/ssh/ssh_config:
HashKnownHosts yes
Caso você já tenha um known_hosts com nomes às claras, rode um ssh-keygen -H para que os hosts do seu arquivo sejam convertidos para hashes.
Tudo lindo, né? Err, não.
history|grep ssh
Ó que beleza! De que adiantou ter seu known_hosts protegido se eu posso ver onde você deu ssh? Faça com que o bash não guarde no histórico os comandos ssh. Coloque no seu .bash_profile:
export HISTIGNORE="&:ssh *"
O & serve para que ele não guarde entradas repetidas. Separamos cada entrada com dois pontos, e depois vem o "ssh *".
Bem melhor, né? Só que tem mais. Alguns servidores que eu logo não funcionam na porta 22, pra poupar digitação, eu tenho algumas entradas no meu ~/.ssh/config, com os devidos hostnames e portas. Hmmm, mais um ponto de rastros. M****.
Bom, fazendo uma análise mais detalhada, eu fiz uma busca por .ssh/config nos homedirs de alguns grupos de usuário aqui do IC. De cerca de 140 usuários, 2 tinham 2 ou 3 hosts especificados cada um. Então, cerca de 98.5% dos usuários têm seu histórico de ssh protegido, já que não estão especificando nenhum host no arquivo de configuração. Certamente o Ulisses vai aparecer me falando mais alguma coisa que eu não percebi.


