DebianおよびUbuntuでsshオートコンプリートを有効にするには:
sudo apt-get install bash-completion
これは、上記で説明した内容および元の質問とは反対に、known_hostsハッシュとはまったく関係がないことに注意してください。known_hostsからオートコンプリートする場合は、もちろんハッシュを無効にする必要がありますが、これは強くお勧めしません。
たとえば、私は持っています:
Host *
HashKnownHosts yes
.ssh / configで、.ssh / configおよび/ etc / hostsにリストされているホストに対してssh自動補完が正常に機能しています。OPが述べているように、ホストを.ssh / configに追加する必要があります。
ホストmy-awesome-hostホスト名the.real.host.name
(または、Debian / Ubuntuスクリプトの別のソースである/ etc / hostsにホストエントリを追加できます。)
次に、入力するだけで、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はデフォルトでbashではなくashを使用することに注意してください。簡単にbashに切り替えることができます:
sudo usermod -s /bin/bash "$USER"
(これを有効にするには、ログアウトしてから再度ログインする必要があります。)