Я использую инструмент кластеризации (hadoop), работающий локально, который должен иметь возможность выполнять ssh без пароля следующим образом:

 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 ):

2 ответа2

1

Вам необходимо иметь полное доменное имя (полное доменное имя) в вашем $(hostname)

Так что вам нужно сделать ваш /etc /hosts следующим образом:

127.0.0.1 localhost

xx.xx.242.47 TCA0080ALKVTAGB TCA0080ALKVTAGB.local

0

Проблема заключается в том, что корпоративный брандмауэр связывается с DNS (да - даже для разрешения локальной машины ..). Я не знаю деталей, но когда брандмауэр отключен, DNS работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .