Tengo una gran lista de servidores que normalmente hago sshtodo el tiempo. ¿Hay alguna forma de usar basho zshpara que pueda mantener la lista de nombres de host y la finalización automática de bash revisa el archivo y me sugiere sugerencias para los cuadros que comienzan con esas letras cada vez que escribo las primeras letras del nombre de host.
fuente

El paquete de finalización de bash incluye finalizaciones para
sshcomandos, que incluyen:sshssh-addssh-copy-idsshfsPuede navegar por la fuente aquí: https://alioth.debian.org/scm/browser.php?group_id=100114
fuente
Copiado de mi propia respuesta en unix.SE :
Si está en un host de Ubuntu, debe saber que en Ubuntu las entradas en
~/.ssh/known_hostshash , por lo que la finalización de SSH no puede leerlas. Esto es una característica, no un error. Incluso mediante la adiciónHashKnownHosts noa~/.ssh/config, y/etc/ssh/ssh_configno pude evitar que el hash de acogida.Sin embargo, puede leer las entradas configuradas
~/.ssh/config, que no están en hash. Aquí hay un script para Bash Completion que lee las entradas de ese archivo:Ponga ese script
/etc/bash_completion.d/sshy luego fuente con el siguiente comando:Encontré esta guía invaluable y no habría podido escribir esto sin ella. ¡Gracias Steve Kemp por escribir esa excelente guía!
fuente
opts=$(grep '^Host' ~/.ssh/config | sed 's@^Host @@')porque la~/.ssh/configsintaxis permite varios nombres en una sola líneaPara que esto funcione, coloque los hosts que desee completar en su
/etc/hostsarchivo.También necesita el
bash-completionpaquete (que contiene el archivo / etc / bash_completion y el directorio /etc/bash_completion.d)y la fuente en ~ / .bashrc (
. /etc/bash_completion- a veces se comenta en /etc/bash.bashrc o en ~ / .bashrc).fuente
man ssh_configpara más detalles, pero es mucho más versátil, lo que le permite especificar múltiples alias, nombre de usuario, puerto y mucho más./etc/ssh/ssh_config, no tengo terminación de trabajar para los hosts configurados.ohmyzsh.known_hoststan bien como los otros archivos de configuración, por ejemplo,~/.ssh/config