我已经建立了一个Hadoop集群。问题出在 ssh 无密码连接上。我的主节点能够在没有密码的情况下连接到从属节点。但是,我的奴隶要求输入密码以连接到主服务器。当我删除从属节点中的known_hosts
文件时,我能够在没有密码的情况下连接到主节点。但是在重新启动时,它再次要求我输入密码。
有什么想法吗?
我终于成功地通过无密码的ssh连接了主站和从站。以下内容对该领域的其他开发人员很有用:
在主控上:
ssh-keygen
ssh-copy-id user@slave
然后从主站连接到从站:ssh user@slave
在从属设备上:
ssh-keygen
ssh-copy-id user@master
从从连接到主站:ssh user@master
启用authorized_keys文件夹中的密钥:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
我们在这里,简单易行!
无密码 SSH 是单向的。对于Hadoop集群,如果启用从主站到从属服务器的无密码SSH,则仍然需要密码进行身份验证并从任何从属服务器连接到主站。
这是因为无密码SSH基本上是公钥身份验证。当主节点公钥导出到从节点时,将建立身份信任,以便主节点中的相应用户可以使用其公钥而不是通过提供用户密码来对从属节点进行身份验证。
如果我们想从从节点到主节点的SSH实现相同的效果,那么每个从节点公钥都应该导出并添加到master的授权密钥文件中,这与原始海报在他的更新中提到的是一致的。
有关无密码SSH概念的更多详细说明,请参阅本文。