Per abilitare il completamento automatico ssh in Debian e Ubuntu:
sudo apt-get install bash-completion
Si noti che ciò non ha assolutamente nulla a che fare con l'hashing di known_hosts, contrariamente a quanto affermato sopra e alla domanda originale. Se vuoi completare automaticamente da known_hosts, ovviamente dovresti disabilitare l'hash, ma è fortemente sconsigliato.
Ad esempio, ho:
Host *
HashKnownHosts yes
nel mio .ssh / config, e ho ancora il completamento automatico di ssh che funziona perfettamente con gli host elencati in .ssh / config e / etc / hosts. È necessario aggiungere l'host a .ssh / config come indicato dall'OP:
Ospita my-awesome-host Nome host the.real.host.name
(Oppure, puoi aggiungere una voce host a / etc / hosts, che è un'altra fonte per gli script Debian / Ubuntu.)
Quindi, puoi semplicemente digitare ssh my-awe<tab>
e verrà completato automagicamente. Ancora una volta, questo è anche se HashKnownHosts, che è altamente raccomandato. (Nota che il completamento della bash deve essere abilitato nella tua shell bash e devi avere specificamente quegli script installati come sopra per la tua distribuzione.)
Quindi, aggiungi queste righe al tuo .bashrc
per abilitarlo (richiede un logout e il login di nuovo, o solo un nuovo bash
digitato per lanciare una nuova shell. (Non è necessario abilitare se è già abilitato /etc/bash.bashrc
e /etc/profile
fonti /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Ciò consentirà l'autocompletamento SSH (tra le altre cose!) Da ~/.ssh/config
, /etc/hosts
, ecc
Si noti che Debian per impostazione predefinita è ash anziché bash. Puoi passare facilmente a bash:
sudo usermod -s /bin/bash "$USER"
(È necessario disconnettersi e riconnettersi affinché questo abbia effetto.)