Чтобы включить автозаполнение 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
, и он будет автоматически завершен. Опять же, это даже если вы 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"
(Вам нужно будет выйти и снова войти в систему, чтобы это вступило в силу.)