
Utilizo un archivo .ssh/config para configurar mi nombre de usuario de forma adecuada en función de una parte determinada de un subdominio, por ejemplo
Host *widgetshop.com*
User foobar
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Host *
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Esto funciona si escribo:
ssh foo.widgetshop.com
pero no funciona si escribiera:
ssh foo
que tras la resolución de la ruta de búsqueda se convierte en el mismo fqdn.
¿Alguien tiene una manera de expandir los nombres cortos antes de llamar a ssh o un enfoque alternativo?
Respuesta1
Quizás puedas usar el host
comando:
ssh $(host -t A foo | cut -f1 -d" ")
Ponlo en un script de shell (reemplaza "foo" con "$1") y ejecuta ssh.
Respuesta2
A partir de OpenSSH 6.5, puedes hacer esto con la CanonicalizeHostname
opción en ssh_config. Aquí hay un ejemplo que debería hacer lo que desea:
CanonicalizeHostname yes
CanonicalDomains widgetshop.com
Host *.widgetshop.com
User foobar
Respuesta3
La página de manual ssh_config responde a esto:
El host es el argumento del nombre de host proporcionado en la línea de comando (es decir, el nombre no se convierte a un nombre de host canonicalizado antes de hacer coincidir).
En otras palabras, no funciona porque no funciona de esa manera.
Respuesta4
por favor vea mi "enfoque alternativo")
mbp:~ alexus$ grep f9 /etc/hosts
XX.XXX.XX.XXX f9
mbp:~ alexus$ ssh f9 hostname
f9.XXX.org
mbp:~ alexus$