회사 네트워크에 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(정규화된 도메인 이름) 간의 자동 변환이 가능합니다.