expande nomes de host para fqdn antes de chamar ssh?

3

Eu faço uso de 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 escrever:

ssh foo

que na resolução do caminho de pesquisa se torna o mesmo fqdn.

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

    
por CarpeNoctem 14.01.2014 / 22:33

4 respostas

4

Talvez você possa usar o comando host :

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

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

    
por 15.01.2014 / 13:22
0

O manpage ssh_config responde isso:

The host is the hostname argument given on the command line (i.e. the name is not converted to a canonicalized host name before matching).

Em outras palavras, não funciona porque não funciona assim.

    
por 15.01.2014 / 11:51
0

A partir do OpenSSH 6.5, você pode fazer isso com a opção CanonicalizeHostname em ssh_config. Veja um exemplo que deve fazer o que você quer:

CanonicalizeHostname yes
CanonicalDomains widgetshop.com

Host *.widgetshop.com
     User foobar
    
por 05.06.2018 / 22:04
-1

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$ 
    
por 14.01.2014 / 23:30