호스트 이름에`.local`을 수동으로 추가하지 않으면 동일한 머신으로 ssh 할 수 없습니다. 가능합니다 : ping $(hostname) PING TCA0080ALKVTAGB.local (xx.xx.242.47): 56

암호가없는 ssh를 다음과 같이 수행 할 수 있어야하는 로컬로 실행되는 클러스터링 도구 (hadoop)를 사용하고 있습니다.

 ssh $(hostname)

내 Mac 랩톱에서는 작동하지 않습니다. 여기에 관련 항목이 있습니다/etc/hosts

127.0.0.1   localhost
xx.xx.242.47    TCA0080ALKVTAGB

ping호스트 이름 이 가능합니다 :

ping $(hostname)
PING TCA0080ALKVTAGB.local (xx.xx.242.47): 56 data bytes
64 bytes from xx.xx.242.47: icmp_seq=0 ttl=64 time=0.044 ms
64 bytes from xx.xx.242.47: icmp_seq=1 ttl=64 time=0.115 ms

그러나 ssh호스트 이름으로 시도하면 작동하지 않습니다.

 $ssh $(hostname)
ssh: Could not resolve hostname tca0080alkvtagb: nodename nor servname provided, or not known

.local짝수 .ssh작품 을 추가함으로써

 ssh $(hostname).local   # this works

참고 : 이미 .local전역 검색 도메인에 추가 했습니다 (을 통해 System Preferences | Network | Advanced | DNS).



답변

귀하의 FQDN (정규화 된 도메인 이름)이 있어야합니다. $(hostname)

따라서 다음과 같이 / etc / hosts를 만들어야합니다.

127.0.0.1 로컬 호스트

xx.xx.242.47 TCA0080ALKVTAGB TCA0080ALKVTAGB.local


답변

문제는 회사 방화벽이 DNS를 망친다는 것입니다 (예 : 로컬 컴퓨터의 해상도에서도). 세부 정보를 모르지만 방화벽이 비활성화되면 DNS가 작동합니다.