Para habilitar el autocompletado ssh en Debian y Ubuntu:
sudo apt-get install bash-completion
Tenga en cuenta que esto no tiene nada que ver con el hash conocido_hosts, al contrario de lo que se indicó anteriormente y la pregunta original. Si desea completar automáticamente desde conocido_hosts, entonces, por supuesto, tendría que deshabilitar el hashing, pero eso es muy recomendable.
Por ejemplo, tengo:
Host *
HashKnownHosts yes
en mi .ssh / config, y todavía tengo la finalización automática de ssh funcionando bien con los hosts enumerados en .ssh / config y / etc / hosts. Es necesario agregar el host a .ssh / config como lo indica el OP:
Host my-awesome-host Nombre de host the.real.host.name
(O bien, puede agregar una entrada de host a / etc / hosts, que es otra fuente para los scripts de Debian / Ubuntu).
Luego, simplemente puede escribir ssh my-awe<tab>
y se completará automáticamente. De nuevo, esto es incluso si tienes HashKnownHosts, lo cual es muy recomendable. (Tenga en cuenta que la finalización de bash debe estar habilitada en su shell de bash, y debe tener específicamente esos scripts instalados como se indica arriba para su distribución).
Luego, agregue estas líneas a su .bashrc
para habilitarlo (requiere cerrar sesión y volver a iniciar sesión, o simplemente un nuevo bash
tipo para iniciar un nuevo shell. (No necesita habilitarlo si ya está habilitado en /etc/bash.bashrc
y /etc/profile
fuentes /etc/bash.bashrc
).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Esto permitirá a la terminación automática ssh (entre otras cosas!) De ~/.ssh/config
, /etc/hosts
, etc.
Tenga en cuenta que Debian por defecto es ash en lugar de bash. Puedes cambiar a bash fácilmente:
sudo usermod -s /bin/bash "$USER"
(Deberá cerrar sesión y volver a iniciarla para que esto surta efecto).