D'où vient l'auto-complétion SSH?

Je suis sur un réseau d'entreprise dans lequel la double tabulation après ssh conduit à cracher des suggestions d'ordinateurs à SSH. Cependant, ce que j'ai remarqué est que, selon l'ordinateur sur lequel je suis, un set différent d'ordinateurs sera suggéré. La suppression de .ssh/known_hosts ne modifie pas le comportement. Où ssh tire-t-il dans ces ordinateurs suggérés?

OpenSSH utilise la complétion bash depuis le package bash-completion . Le script responsable est stocké dans /usr/share/bash-completion/completions/ssh (sur Fedora, il peut être différent sur différentes dissortingbutions). La fonction _known_hosts_real est définie globalement dans /usr/share/bash-completion/bash_completion et vous pouvez voir qu'elle utilise tout ce qui suit (les hôtes connus ne sont qu'une des sources):

  • Hôtes connus:
    • Fichier d'hôtes connus par l'user ~/.ssh/known_hosts
    • Le file d'hôtes connus dans le monde /etc/ssh/ssh_known_hosts , /etc/ssh/ssh_known_hosts2 , /etc/known_hosts , /etc/known_hosts2
  • Fichiers de configuration (utilisant principalement les alias d' host , mais aussi le nom d' Hostname )
    • Fichier de configuration de l'user ~/.ssh/config , ~/.ssh2/config
    • Fichier de configuration global /etc/ssh/ssh_config
    • Le file de configuration fourni en utilisant le commutateur -F
    • Fichiers de configuration inclus
  • Dans les keys publiques de cluster ~/.ssh2/key_22_<hostname>.pub (je ne sais pas pourquoi)
  • hôtes signalés par avahi-browse
  • hôtes signalés par ruptime
  • résultats de l'achèvement normal du nom d'hôte

Pour plus de détails sur la source d'information spécifique, vous devriez consulter le code source.