Montag, 27. April 2015

OSX ssh autocomplete

Unter Linux ist es in den gängigen Distributionen normal, dass der Hostname beim Kommando "ssh" mit der Tabulatortaste automatisch ergänzt wird, sofern er in der ~/.ssh/config zu finden ist. Bei OSX Yosemite ist das nicht der Fall. Über einen simplen Eintrag in der ~/.bash_profile läßt sich dieses Verhalten jedoch nachträglich hinzufügen. Nem W. Schlecht hat unter Macworld Hints eine gute Lösung gefunden:
_complete_ssh_hosts ()
{
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        comp_ssh_hosts=`cat ~/.ssh/known_hosts | \
                        cut -f 1 -d ' ' | \
                        sed -e s/,.*//g | \
                        grep -v ^# | \
                        uniq | \
                        grep -v "\[" ;
                cat ~/.ssh/config | \
                        grep "^Host " | \
                        awk '{print $2}'
                `
        COMPREPLY=( $(compgen -W "${comp_ssh_hosts}" -- $cur))
        return 0
}
complete -F _complete_ssh_hosts ssh

Keine Kommentare:

Kommentar veröffentlichen