Copiado da minha própria resposta no unix.SE :
Se você estiver em um host Ubuntu, deverá saber que no Ubuntu as entradas ~/.ssh/known_hosts
são hash , para que a conclusão do SSH não possa lê-las. Este é um recurso, não um bug. Mesmo adicionando HashKnownHosts no
ao ~/.ssh/config
e /etc/ssh/ssh_config
eu era incapaz de impedir o hashing host.
No entanto, você pode ler as entradas configuradas de ~/.ssh/config
, que não são hash. Aqui está um script para o Bash Completion que lê as entradas desse arquivo:
_ssh()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(grep '^Host' ~/.ssh/config | awk '{print $2}')
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
return 0
}
complete -F _ssh ssh
Coloque esse script /etc/bash_completion.d/ssh
e origine-o com o seguinte comando:
$ . /etc/bash_completion.d/ssh
Achei este guia inestimável e eu não seria capaz de escrever isso sem ele. Obrigado Steve Kemp por escrever esse guia fantástico!