Encontrou-o !!
Parece que no Ubuntu as entradas em ~/.ssh/known_hosts
são hashed , então A conclusão do SSH não pode lê-los. Este é um recurso, não um bug. Mesmo adicionando HashKnownHosts no
a ~/.ssh/config
e /etc/ssh/ssh_config
, não consegui impedir o hashing do host.
No entanto, os hosts nos quais estou interessado também são encontrados em ~/.ssh/config
. Aqui está um script para 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 ~/.ssh/config.d/* 2>/dev/null | grep -v '[?*]' | cut -d ' ' -f 2-)
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
return 0
}
complete -F _ssh ssh
Coloque esse script em /etc/bash_completion.d/ssh
e, em seguida, digite-o com o seguinte comando:
$ . /etc/bash_completion.d/ssh
Eu achei este guia inestimável e eu não teria sido capaz de roteirizar isso sem ele. Obrigado Steve Kemp por escrever esse guia fantástico!