SSH는 네트워크에서 호스트 이름을 어떻게 발견합니까?

SSH는 네트워크에서 호스트 이름을 어떻게 발견합니까?

회사 네트워크에 serverA라는 서버가 있는데, 서버에 입력하면 ssh serverA해당 서버에 대한 항목이 없는데도 /etc/hosts다른 PC가 있었음에도 불구하고 해당 서버에 내 PC가 연결됩니다. 어떤 설정을 해야 할까요? 이것은 수동으로 /etc/hosts. 그렇다면 ssh는 네트워크에서 호스트 이름을 어떻게 발견하고 그것이 유효한지 어떻게 확인합니까? (내가 언급한 두 머신 모두 Kubuntu Linux를 실행합니다. 이전 머신은 12.10을 실행하고 최신 머신은 13.04를 실행합니다.)

나는 다음을 가지고 있습니다 /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

포트 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))

답변1

OpenSSH 클라이언트는 표준을 사용합니다.도메인 명 시스템호스트 이름을 IP 주소로 확인하는 운영 체제에서 제공하는 파서입니다.

hosts에서 구성/etc/nsswitch.conf호스트를 확인할 때 확인해야 할 항목과 순서를 구성합니다.

dns일반적으로 대부분의 조회는 구성된 파서에 의해 수행됩니다./etc/resolv.conf. 관리자에게 연락하여 nameserver호스트 /etc/resolv.conf이름/IP를 구성해 달라고 요청해야 할 수도 있습니다. 귀하의 경우에는 127.0.1.1이 귀하의 것으로 보입니다. 동적 DHCP IP 주소가 있는 경우 설정에 따라 이것이 불가능할 수도 있습니다.

mdns작업자 호스트를 활성화하는 이유가 멀티캐스트 DNS인 경우 새 호스트는 다른 서브넷에 있거나 이름을 브로드캐스트하지 않을 수 있습니다.

답변2

이는 서버가 구성한 DNS 검색 도메인 내에 있을 때 발생합니다.

예를 들어 현재 검색 도메인은 example.com입니다.

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

이제 다음 작업을 투명하게 수행할 수 있습니다.

$ 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

검색 도메인을 사용하면 컴퓨터 이름과 FQDN(정규화된 도메인 이름) 간의 자동 변환이 가능합니다.

관련 정보