Disalin dari jawaban saya sendiri di unix.SE :
Jika Anda menggunakan host Ubuntu, maka Anda harus tahu bahwa di Ubuntu entri di ~/.ssh/known_hosts
hash , sehingga penyelesaian SSH tidak dapat membacanya. Ini adalah fitur, bukan bug. Bahkan dengan menambahkan HashKnownHosts no
ke ~/.ssh/config
dan /etc/ssh/ssh_config
saya tidak dapat mencegah hashing tuan rumah.
Namun, Anda dapat membaca entri yang dikonfigurasi dari ~/.ssh/config
, yang bukan hash. Berikut ini adalah skrip untuk Bash Completion yang membaca entri dari file itu:
_ssh()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(grep '^Host' ~/.ssh/config | awk '{print $2}')
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
return 0
}
complete -F _ssh ssh
Masukkan script itu /etc/bash_completion.d/ssh
dan kemudian sumber dengan perintah berikut:
$ . /etc/bash_completion.d/ssh
Saya menemukan panduan ini sangat berharga dan saya tidak akan dapat menulis tanpa ini. Terima kasih Steve Kemp untuk menulis panduan hebat itu!