Estoy tratando de crear mi ~/.ssh/config
archivo para simplificar mi vida laboral en la conexión del servidor.
En Mavericks todo funcionó correctamente y con el tabpude completar automáticamente el nombre de host con un archivo como este:
Host test-host-name
HostName 192.168.1.2
User root
La misma configuración en Yosemite tiene un comportamiento diferente. Cuando escribo ssh t
en el shell tab, no completa automáticamente el nombre de host.
¿Alguien sabe si algo ha cambiado en Yosemite y ahora tengo que hacer algo para que funcione?
yosemite
bash
ssh
configuration
RikyTres
fuente
fuente
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
. ¿Podría explicar qué versión (esa o la suya) debería preferirse y por qué?Supongo que la carcasa de tu Mac es bash.
Necesita completar el comando ssh, para más detalles puede leer
man complete
No olvide que necesita
source
el archivo para obtener el nuevo comando para cargar en su terminal. o puede poner este código en .bash_profilefuente
comp_ssh_hosts=$(awk -F , 'FNR== NR && ! /^#|\[/ {field = $1} FNR != NR && /^Host / {field = $2} {hosts[field]} END {for (host in hosts) {print host}' "$HOME/.ssh/known hosts" "$HOME/.ssh/config")
De este artículo en MacWorld .
Copie / pegue lo siguiente en
~/.bash_profile
:Luego deberá reiniciar su terminal o escribir
source ~/.bash_profile
(tenga en cuenta que este último solo funcionará en su pestaña actual).fuente
Para su información, no estoy seguro de cómo responder directamente a la respuesta de Nelson, ya que aún no he acumulado suficiente reputación para comentarlo, pero en mi máquina que ejecuta El Capitan,
^M
se estaba agregando a todos los nombres de host de mi archivo de configuración . Tuve que agregar\r
a mi$IFS
variable o eliminar / sustituir todas las instancias de\r
la salida del segundocat
. Al final, hice lo último agregandotr '\r' '\n'
para hacer que la cadena de comandos se vea así:fuente
Puede agregar entradas en / etc / hosts y usarlas en autocompletar nombre de host:
Se requiere reiniciar para que el sistema vuelva a cargar este archivo.
fuente