Щоб увімкнути автоматичне завершення 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"
(Вам потрібно буде вийти з системи та увійти знову, щоб це набуло чинності.)