Щоб увімкнути автоматичне завершення ssh в Debian та Ubuntu:
sudo apt-get install bash-completion
Зауважте, що це взагалі не має нічого спільного з хешированием знаних_хостів, всупереч сказаному вище та оригінальному питанню. Якщо ви хотіли автозавершити відомі_hosts, то, звичайно, вам доведеться відключити хешування, але це настійно не рекомендується.
Наприклад, у мене є:
Host *
HashKnownHosts yes
в моєму .ssh / config, і в мене все ще є автоматичне завершення ssh, яке працює добре проти хостів, перелічених у .ssh / config та / etc / hosts. Вам потрібно додати хост до .ssh / config, як вказано в ОП:
Хост my-awesome-host Hostname the.real.host.name
(Або ви можете додати хост-запис до / etc / hosts, що є ще одним джерелом для сценаріїв Debian / Ubuntu.)
Потім ви можете просто набрати, ssh my-awe<tab>і це буде автоматично виконано. Знову ж таки, це навіть якщо ви HashKknownHosts, що дуже рекомендується. (Зверніть увагу, що завершення 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 за замовчуванням золить замість bash. Ви можете легко перейти на bash:
sudo usermod -s /bin/bash "$USER"
(Вам потрібно буде вийти з системи та увійти знову, щоб це набуло чинності.)