como o ssh descobre nomes de host na rede?

3

Temos um servidor na rede da empresa chamado serverA e, se eu digitar ssh serverA , ele conectará meu PC a esse servidor, mesmo que não haja entrada para esse servidor no meu /etc/hosts , mas eu costumava tenho outro PC em que preciso configurá-lo manualmente em /etc/hosts . Então, como o ssh descobre nomes de host na rede e como posso ter certeza de que funciona? (Ambas as máquinas que mencionei estão rodando o Kubuntu Linux, o mais antigo roda 12.10, o mais novo roda 13.04.)

Eu tenho o seguinte conteúdo em /etc/resolv.conf :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search mycompany.com

Processa a escuta na porta 53:

sudo ss -ulnp | grep 53
#UNCONN     0      0                         *:5353                     *:*      users:(("avahi-daemon",937,12))
#UNCONN     0      0                 127.0.1.1:53                       *:*      users:(("dnsmasq",1781,4))
#UNCONN     0      0                        :::5353                    :::*      users:(("avahi-daemon",937,13))
    
por qed 22.07.2013 / 14:16

2 respostas

2

Isso acontece quando o servidor está no domínio de pesquisa do DNS que você configurou.

Por exemplo, meu domínio de pesquisa atual é example.com:

$ grep ^search /etc/resolv.conf
search example.com

Agora posso fazer o seguinte de forma transparente:

$ ping foo.example.com
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C
$ ping foo
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C

Os domínios de pesquisa permitem a tradução automática entre o nome da máquina e o nome de domínio totalmente qualificado (FQDN).

    
por 22.07.2013 / 14:57
3

O cliente OpenSSH usa o resolvedor padrão de DNS fornecido pelo seu sistema operacional para resolver nomes de host para um endereço IP.

A configuração hosts em /etc/nsswitch.conf configura o que deve ser considerado para resolver hosts e e em que ordem.

Normalmente, a maioria das pesquisas será concluída pelo dns resolver que está configurado em /etc/resolv.conf . Você provavelmente precisa entrar em contato com a pessoa que administra o nameserver anotado em /etc/resolv.conf e pedir que ele configure o nome do host / IP para você, que no seu caso de 127.0.1.1 parece ser você mesmo. Se você tiver um endereço IP DHCP dinâmico, isso pode não ser possível dependendo da sua configuração.

Se mdns ou Multicast DNS for o que habilita seu host ativo, seu novo host pode estar em uma sub-rede diferente ou não transmitir seu nome.

    
por 22.07.2013 / 15:04