Aby włączyć autouzupełnianie ssh w Debianie i Ubuntu:
sudo apt-get install bash-completion
Zauważ, że nie ma to nic wspólnego z mieszaniem znanego hosta, w przeciwieństwie do tego, co zostało powiedziane powyżej i pierwotne pytanie. Jeśli chcesz autouzupełnianie ze znanych_hostów, oczywiście musisz wyłączyć haszowanie, ale jest to zdecydowanie zalecane przeciwko.
Mam na przykład:
Host *
HashKnownHosts yes
w moim .ssh / config i nadal mam automatyczne uzupełnianie ssh działające w porządku przeciwko hostom wymienionym w .ssh / config i / etc / hosts. Musisz dodać hosta do .ssh / config, jak stwierdził OP:
Host my-awesome-host Nazwa hosta the.real.host.name
(Lub możesz dodać wpis hosta do / etc / hosts, który jest innym źródłem skryptów Debian / Ubuntu.)
Następnie możesz po prostu wpisać, ssh my-awe<tab>
a zostanie ono automatycznie ukończone. Znowu dzieje się tak nawet w przypadku HashKnownHosts, co jest wysoce zalecane. (Zauważ, że ukończenie bash musi być włączone w twojej powłoce bash i musisz specjalnie zainstalować te skrypty jak wyżej dla twojej dystrybucji.)
Następnie dodaj te wiersze do swojego, .bashrc
aby go włączyć (wymaga wylogowania i zalogowania się ponownie lub po prostu nowego bash
wpisania w celu uruchomienia nowej powłoki. (Nie musisz włączać, jeśli jest już włączony /etc/bash.bashrc
i /etc/profile
źródła /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Umożliwi to ssh autouzupełnianie (między innymi!) Z ~/.ssh/config
, /etc/hosts
itp
Zauważ, że Debian domyślnie używa ash zamiast bash. Możesz łatwo przejść na bash:
sudo usermod -s /bin/bash "$USER"
(Musisz się wylogować i zalogować ponownie, aby to zadziałało).