![除非手动将“.local”添加到主机名,否则无法通过 ssh 进入同一台机器](https://linux22.com/image/1521491/%E9%99%A4%E9%9D%9E%E6%89%8B%E5%8A%A8%E5%B0%86%E2%80%9C.local%E2%80%9D%E6%B7%BB%E5%8A%A0%E5%88%B0%E4%B8%BB%E6%9C%BA%E5%90%8D%EF%BC%8C%E5%90%A6%E5%88%99%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9B%E5%85%A5%E5%90%8C%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8.png)
我正在使用本地运行的集群工具(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 可以正常工作。