SSH Autocompletion – Disable using /etc/hosts – brew

I use the `bash-completion` keg from `homebrew` to get better bash-completion on Mac OS X. You can install it with

brew install bash-completion

You can also get some information about it using:

brew info bash-completion

It will tell you something like:

bash-completion: stable 1.3
http://bash-completion.alioth.debian.org/
/usr/local/Cellar/bash-completion/1.3 (187 files, 1.1M) *
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/bash-completion.rb
==> Caveats
Add the following lines to your ~/.bash_profile:
if [ -f $(brew –prefix)/etc/bash_completion ]; then
. $(brew –prefix)/etc/bash_completion
fi

Homebrew’s own bash completion script has been installed to
/usr/local/etc/bash_completion.d

Bash completion has been installed to:
/usr/local/etc/bash_completion.d

To find out where the file that does all the work is stored, run:

echo $(brew –prefix)/etc/bash_completion

It will probably tell you something like:

/usr/local/etc/bash_completion

That file has a lot of comments in it, one of the gems being:

_known_hosts_real()

# Helper function for completing _known_hosts.
# This function performs host completion based on ssh’s config and known_hosts
# files, as well as hostnames reported by avahi-browse if
# COMP_KNOWN_HOSTS_WITH_AVAHI is set to a non-empty value. Also hosts from
# HOSTFILE (compgen -A hostname) are added, unless
# COMP_KNOWN_HOSTS_WITH_HOSTFILE is set to an empty value.
# Usage: _known_hosts_real [OPTIONS] CWORD
# Options: -a Use aliases
# -c Use `:’ suffix
# -F configfile Use `configfile’ for configuration settings
# -p PREFIX Use PREFIX
# Return: Completions, starting with CWORD, are added to COMPREPLY[]

The short story is that if you set up something in your `~/.bash_profile` file like this:

export COMP_KNOWN_HOSTS_WITH_HOSTFILE=”” #don’t use /etc/hosts for ssh autocomplete

Then your `ssh` autocomplete will only be working from the ssh configuration file and not your `/etc/hosts` file – which if you have a lot of entries could be frustrating.

Related Posts:

This entry was posted in Tech Tips and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *