Чтобы включить автозаполнение ssh в Debian и Ubuntu:
sudo apt-get install bash-completion
Обратите внимание, что это не имеет ничего общего с хэшированием known_hosts, в отличие от того, что было сказано выше и исходного вопроса. Если вы хотите выполнить автозаполнение с known_hosts, то, конечно, вам придется отключить хеширование, но это настоятельно рекомендуется.
Например, у меня есть:
Host *
HashKnownHosts yes
в моем .ssh / config, и у меня все еще есть автоматическое завершение ssh, работающее с хостами, перечисленными в .ssh / config и / etc / hosts. Вам нужно добавить хост в .ssh / config, как указано в OP:
Host my-awesome-host Имя хоста the.real.host.name
(Или вы можете добавить запись хоста в / etc / hosts, который является другим источником для сценариев Debian / Ubuntu.)
Затем вы можете просто напечатать, ssh my-awe<tab>
и это будет автоматически завершено. Опять же, это даже если вы HashKnownHosts, что настоятельно рекомендуется. (Обратите внимание, что завершение bash должно быть включено в вашей оболочке bash, и вам необходимо специально установить эти сценарии, как указано выше для вашего дистрибутива.)
Затем добавьте эти строки в свой, .bashrc
чтобы включить его (требуется выйти из системы и снова войти в систему, или просто bash
ввести новый текст для запуска новой оболочки. (Вам не нужно включать, если он уже включен /etc/bash.bashrc
и /etc/profile
источники /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Это включит автозаполнение ssh (среди прочего!) Из ~/.ssh/config
, /etc/hosts
и т. Д.
Обратите внимание, что в Debian по умолчанию используется ash вместо bash. Вы можете легко перейти на bash:
sudo usermod -s /bin/bash "$USER"
(Вам нужно выйти и снова войти, чтобы это вступило в силу.)