ssh + bash + bash_completion

O Ubuntu traz por omissão o cliente de ssh configurado para guardar uma hash da informação de ligação, em vez de guardar o endereço IP e o host.
Isto deve-se a questões de segurança e privacidade. Se por algum motivo a máquina for comprometida, é difícil saber a que outras máquinas o utilizador estabelecia ligações e onde quiçá tinha acesso por chave sem password.
Isto é importante, porém infelizmente retira uma funcionalidade interessante para quem precisa de estabelecer certas ligações com alguma frequência e para quem o TAB é tal vício que já se usa em todo o lado. 🙂
Para quem estiver seguro que esta informação é irrelevante, quer pela facilidade de ser descoberta por outros meios, quer pela segurança da rede em que está inserido e pretenda facilitar o dia a dia, poderá adicionar ao ficheiro de configuração $HOME/.ssh/config a linha:

HashKnownHosts no

Desta forma no ficheiro $HOME/.ssh/known_hosts passará a constar o IP e o hostname das máquinas para onde são feitas ligações, permitindo à funcionalidade acrescida do bash_completion completar os nomes dos hosts como é comum com outros comandos na bash.

As funcionalidade dos scripts de sugestão avançada também não estão activos de raiz, sendo necessário tirar o # das linhas finais do ficheiro $HOME/.bashrc para que se leia:

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi