ssh_config, seção de host para servidores no domínio de pesquisa

1

Eu tenho test.example.com nos meus domínios de pesquisa de DNS. Quando eu ssh server01 , ele se conecta ao meu servidor conforme o esperado. No entanto, ele não segue minhas regras ssh_config porque não corresponde:

Host *.test.example.com 
User djimenez
ForwardAgent yes

Não tem problema, vou adicionar um curinga!

Host *
User djimenez
ForwardAgent yes

No entanto, isso se aplica a todos os hosts. Não apenas nomes DNS curtos (não-FQDN, se desejar).

Minha pergunta, existe alguma maneira de criar uma regra de host que corresponda apenas aos nomes curtos de dns? Ou melhor ainda, seria se houvesse alguma forma mágica para o ssh obter o FQDN do DNS (no caso de eu ter vários domínios de pesquisa).

    
por danieljimenez 13.09.2014 / 10:23

2 respostas

4

Os únicos dois curingas permitidos em uma especificação Host são * , que corresponde a qualquer sequência, e ? , que corresponde a qualquer caractere único. Você também pode pré-adicionar ! a um padrão para negar o sentido da correspondência, de modo que se aplique a valores de host que não correspondam ao restante do padrão.

Então, uma regra como esta:

Host !*.*
    SomeOption...

deve se aplicar a qualquer valor de nome de host que não contenha um ponto.

Você também pode ter mais de um padrão por linha Host , caso queira que as regras se apliquem ao formato longo dos nomes de host:

Host !*.* *.test.example.com
    SomeOption...
    
por 14.09.2014 / 21:00
0

Os estados ssh_config man-page: "O host é o argumento do nome do host dado na linha de comando (ou seja, o nome não é convertido em um nome de host canonicalizado antes da correspondência)."

Uma maneira de contornar isso seria criar um script de wrapper que primeiro expandisse o nome do host fornecido a um FQDN, se possível, e passasse isso para o ssh; link

    
por 13.09.2014 / 11:17

Tags