Pour activer l'auto-complétion ssh dans Debian et Ubuntu:
sudo apt-get install bash-completion
Notez que cela n’a absolument rien à voir avec le hashage de known_hosts, contrairement à ce qui a été dit plus haut et à la question initiale. Si vous souhaitez compléter automatiquement à partir de known_hosts, vous devez bien sûr désactiver le hachage, mais cela est fortement déconseillé.
Par exemple, j'ai:
Host *
HashKnownHosts yes
dans mon fichier .ssh / config et que l'auto-complétion ssh fonctionne toujours très bien contre les hôtes répertoriés dans .ssh / config et / etc / hosts. Vous devez ajouter l'hôte à .ssh / config comme l'OP a déclaré:
Hôte my-awesome-host Hostname the.real.host.name
(Vous pouvez également ajouter une entrée d'hôte à / etc / hosts, qui est une autre source pour les scripts Debian / Ubuntu.)
Ensuite, vous pouvez simplement taper ssh my-awe<tab>
et il sera complété automatiquement. Encore une fois, cela se produit même si vous utilisez HashKnownHosts, ce qui est vivement recommandé. (Notez que l'achèvement de bash doit être activé dans votre shell bash et que ces scripts doivent être installés spécifiquement comme ci-dessus pour votre distribution.)
Ajoutez ensuite ces lignes à votre .bashrc
pour l'activer (nécessite une déconnexion et une nouvelle connexion, ou tout simplement un nouveau bash
saisi pour lancer un nouveau shell. (Vous n'avez pas besoin d'activer s'il est déjà activé dans /etc/bash.bashrc
et les /etc/profile
sources /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Cela permettra autocomplétion ssh (entre autres!) De ~/.ssh/config
, /etc/hosts
etc.
Notez que Debian utilise par défaut cendré au lieu de bash. Vous pouvez passer à bash facilement:
sudo usermod -s /bin/bash "$USER"
(Vous devrez vous déconnecter et vous reconnecter pour que cela prenne effet.)