我正在使用本地运行的集群工具(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
):
答案1
您需要在您的$(hostname)
因此您需要使您的 /etc/hosts 类似:
127.0.0.1 本地主机
xx.xx.242.47 TCA0080ALKVTAGB TCA0080ALKVTAGB.本地
答案2
问题是公司防火墙干扰了 DNS(是的 - 甚至干扰了本地机器的解析...)。我不知道详细信息,但是当防火墙被禁用时,DNS 可以正常工作。