Para habilitar o autocompletar ssh no Debian e Ubuntu:
sudo apt-get install bash-completion
Observe que isso não tem nada a ver com o hash conhecido_hosts, ao contrário do que foi afirmado acima e da pergunta original. Se você quisesse completar automaticamente a partir de known_hosts, é claro que teria que desativar o hash, mas isso é altamente recomendável.
Por exemplo, eu tenho:
Host *
HashKnownHosts yes
no meu .ssh / config, e ainda tenho o preenchimento automático do ssh funcionando bem nos hosts listados em .ssh / config e / etc / hosts. Você precisa adicionar o host ao .ssh / config como o OP declarou:
Host my-awesome-host Nome do host the.real.host.name
(Ou você pode adicionar uma entrada de host ao / etc / hosts, que é outra fonte para os scripts Debian / Ubuntu.)
Em seguida, basta digitar ssh my-awe<tab>
e ele será concluído automaticamente. Novamente, isso é mesmo se você HashKnownHosts, o que é altamente recomendado. (Observe que a conclusão do bash precisa estar ativada no seu shell do bash, e você precisa especificamente ter esses scripts instalados como acima para sua distribuição.)
Em seguida, adicione essas linhas ao seu .bashrc
para habilitá-lo (requer um logout e login novamente, ou apenas um novo bash
digitado para iniciar um novo shell (você não precisa habilitá-lo se ele já estiver ativado /etc/bash.bashrc
e nas /etc/profile
fontes /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Isso permitirá autocompletion ssh (entre outras coisas!) De ~/.ssh/config
, /etc/hosts
, etc.
Note que o Debian assume como padrão ash em vez de bash. Você pode alternar para o bash facilmente:
sudo usermod -s /bin/bash "$USER"
(Você precisará sair e fazer login novamente para que isso entre em vigor.)