De onde o SSH extrai o preenchimento automático?

5

Eu estou em uma rede corporativa na qual a tabulação dupla após o ssh leva a sugestões de computadores para o ssh. No entanto, o que eu notei é que, dependendo do computador em que estou, um conjunto diferente de computadores será sugerido. Remover .ssh/known_hosts não altera o comportamento. Onde o ssh está puxando esses computadores sugeridos?

    
por user1950278 14.06.2017 / 02:06

1 resposta

8

O OpenSSH está usando o preenchimento básico do pacote bash-completion . O script responsável é armazenado em /usr/share/bash-completion/completions/ssh (no Fedora. Pode ser diferente em diferentes distros). A função _known_hosts_real é definida globalmente em /usr/share/bash-completion/bash_completion e você pode ver que está usando todos os itens abaixo (hosts conhecidos são apenas uma das origens):

  • Hosts conhecidos:
    • Arquivo de hosts conhecidos do usuário ~/.ssh/known_hosts
    • Arquivo global de hosts conhecidos /etc/ssh/ssh_known_hosts , /etc/ssh/ssh_known_hosts2 , /etc/known_hosts , /etc/known_hosts2 ...
  • Arquivos de configuração (usando host aliases principalmente, mas também Hostname s)
    • Arquivo de configuração do usuário ~/.ssh/config , ~/.ssh2/config
    • Arquivo de configuração global /etc/ssh/ssh_config
    • O arquivo de configuração fornecido usando o -F switch
    • Arquivos de configuração incluídos
  • Em chaves públicas de cluster ~/.ssh2/key_22_<hostname>.pub (não sei por que)
  • hosts relatados por avahi-browse
  • hosts relatados por ruptime
  • resultados da conclusão do nome do host normal

Para detalhes sobre fontes específicas de informação, você deve consultar o código fonte.

    
por 14.06.2017 / 08:48