diff --git a/completions/ssh.completion.sh b/completions/ssh.completion.sh index f47759361..280997167 100644 --- a/completions/ssh.completion.sh +++ b/completions/ssh.completion.sh @@ -45,7 +45,11 @@ function _omb_completion_ssh { fi done if ((${#config_files[@]} != 0)); then - COMPREPLY+=($(compgen -W "$(awk '/^Host/ {for (i=2; i<=NF; i++) print $i}' "${config_files[@]}")" "${options[@]}")) + COMPREPLY+=($(compgen -W "$(awk ' + sub(/^[ \t]*[Hh][Oo][Ss][Tt]([Nn][Aa][Mm][Ee])?[ \t=]+/, "") { + n = split($0, fields, /[ \t]+/); + for (i = 1; i <= n; i++) if (fields[i] != "" && !visited[fields[i]]++) print fields[i]; + }' "${config_files[@]}")" "${options[@]}") ) fi local -a known_hosts_files=()