Untuk mengaktifkan pelengkapan otomatis ssh di Debian dan Ubuntu:
sudo apt-get install bash-completion
Perhatikan bahwa ini sama sekali tidak ada hubungannya dengan hashing known_hosts, bertentangan dengan apa yang dinyatakan di atas dan pertanyaan awal. Jika Anda ingin melengkapi otomatis dari known_hosts, maka tentu saja Anda harus menonaktifkan hashing, tetapi itu sangat tidak disarankan.
Sebagai contoh, saya punya:
Host *
HashKnownHosts yes
di .ssh / config saya, dan saya masih memiliki ssh auto-completion yang berfungsi dengan baik terhadap host yang terdaftar di .ssh / config dan / etc / hosts. Anda perlu menambahkan host ke .ssh / config seperti yang dinyatakan OP:
Host my-awesome-host Hostname the.real.host.name
(Atau, Anda dapat menambahkan entri host ke / etc / hosts, yang merupakan sumber lain untuk skrip Debian / Ubuntu.)
Kemudian, Anda bisa mengetik ssh my-awe<tab>
dan itu akan selesai secara otomatis. Sekali lagi, ini bahkan jika Anda HashKnownHosts, yang sangat dianjurkan. (Perhatikan bahwa penyelesaian bash perlu diaktifkan di bash shell Anda, dan Anda perlu menginstal skrip-skrip tersebut seperti di atas untuk distribusi Anda.)
Kemudian, tambahkan baris ini ke Anda .bashrc
untuk mengaktifkannya (memerlukan logout dan masuk kembali, atau hanya yang baru bash
diketik untuk meluncurkan shell baru. (Anda tidak perlu mengaktifkan jika sudah diaktifkan /etc/bash.bashrc
dan /etc/profile
sumber /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Hal ini akan memungkinkan autocompletion ssh (antara lain!) Dari ~/.ssh/config
, /etc/hosts
, dll
Perhatikan bahwa Debian default ke ash bukan bash. Anda dapat beralih ke bash dengan mudah:
sudo usermod -s /bin/bash "$USER"
(Anda harus keluar dan masuk kembali agar ini berlaku.)