ssh opções de configuração não são aplicadas recursivamente

0

Eu tenho algo parecido com isso no meu ~/.ssh/config :

Host     foo
Hostname foo001.a.b.c.d

Host     bar
Hostname foo011.a.b.c.d

Host            *.a.b.c.d
ProxyCommand    ssh -A -l sds XXX.YYY.ZZZ.TTT nc %h %p

Host            *
ForwardAgent    yes

quando eu faço ssh -vvv foo eu vejo isso:

$ ssh -vvv foo
debug1: /.../.ssh/config line 36: Applying options for foo
debug1: /.../.ssh/config line 50: Applying options for *

Por que a opção com ProxyCommand não é aplicada? O Host corresponde ao Hostname em foo .

Existe uma maneira de fazer o que eu quero, ou seja, mapear o nome abreviado para os FQDNs e, em seguida, tratá-los separadamente?

    
por sds 17.02.2016 / 16:17

2 respostas

0

Porque a opção Host , conforme descrito na página de manual:

The host is usually the hostname argument given on the command line (see the CanonicalizeHostname option for exceptions.)

A configuração não é re-analisada por padrão. Se você quiser combinar com hostname modificado, você deve tentar a Match keyword, o que lhe dá mais flexibilidade. Você pode conseguir o que deseja combinando isso com CanonicalizeHostname .

    
por 17.02.2016 / 17:52
0

Parece que reaplicando as regras depois que qualquer mudança de nome de host foi adicionada involuntariamente ao OpenSSH e depois revertida (veja bug # 2267 ); a versão atual só faz isso quando a canonização do nome do host está ativada. (Um pouco irritante, a versão mais permissiva foi incluída pelo menos no Ubuntu 14/15, então atualizá-las para 16 pode quebrar sua configuração SSh.)

Uma solução um pouco suja é definir

Host *
  CanonicalizeHostname yes
  CanonicalizeFallbackLocal no

que não fará nenhuma canonização, mas permitirá a releitura do arquivo de configuração e fará seu exemplo funcionar.

    
por 07.09.2016 / 04:10

Tags