expandir nomes de host para fqdn antes de chamar ssh?

expandir nomes de host para fqdn antes de chamar ssh?

Eu uso um arquivo .ssh/config para definir meu nome de usuário adequadamente com base em uma determinada parte de um subdomínio, por exemplo

Host *widgetshop.com*
   User foobar
   ControlMaster auto
   ControlPath ~/.ssh/socket-%r@%h:%p

Host *
   ControlMaster auto
   ControlPath ~/.ssh/socket-%r@%h:%p

Isso funciona se eu escrever:

ssh foo.widgetshop.com

mas não funciona se eu escrevesse:

ssh foo

que após a resolução do caminho de pesquisa se torna o mesmo fqdn.

Alguém tem uma maneira de expandir os nomes curtos antes de chamar o ssh ou uma abordagem alternativa?

Responder1

Talvez você possa usar o hostcomando:

ssh $(host -t A  foo | cut -f1 -d" ")

Coloque isso em um script de shell (substitua "foo" por "$1") e execute o ssh.

Responder2

A partir do OpenSSH 6.5, você pode fazer isso com a CanonicalizeHostnameopção em ssh_config. Aqui está um exemplo que deve fazer o que você deseja:

CanonicalizeHostname yes
CanonicalDomains widgetshop.com

Host *.widgetshop.com
     User foobar

Responder3

A página de manual ssh_config responde a isto:

O host é o argumento do nome do host fornecido na linha de comando (ou seja, o nome não é convertido em um nome de host canônico antes da correspondência).

Em outras palavras, não funciona porque não funciona dessa maneira.

Responder4

por favor veja minha "abordagem alternativa")

mbp:~ alexus$ grep f9 /etc/hosts
XX.XXX.XX.XXX   f9
mbp:~ alexus$ ssh f9 hostname
f9.XXX.org
mbp:~ alexus$ 

informação relacionada