Disalin dari jawaban saya sendiri di unix.SE :
Tampaknya secara khusus di Ubuntu entri di ~/.ssh/known_hosts
hash , jadi 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, host yang saya minati juga ditemukan ~/.ssh/config
. 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!
You may not change the shell for 'counterstrike'.