【发布时间】:2017-10-22 09:27:00
【问题描述】:
我已经建立了一个 hadoop 集群。问题在于 ssh 无密码连接。我的主节点无需密码即可连接到从节点。但是我的奴隶要求输入密码才能连接到主人。当我删除从节点中的known_hosts 文件时,我能够在没有密码的情况下连接到主节点。但是在重新启动时,它再次要求我输入密码。
有什么想法吗?
【问题讨论】:
我已经建立了一个 hadoop 集群。问题在于 ssh 无密码连接。我的主节点无需密码即可连接到从节点。但是我的奴隶要求输入密码才能连接到主人。当我删除从节点中的known_hosts 文件时,我能够在没有密码的情况下连接到主节点。但是在重新启动时,它再次要求我输入密码。
有什么想法吗?
【问题讨论】:
我终于成功通过无密码ssh连接了主从。 以下内容对该领域的其他开发人员可能有用:
在主人身上:
ssh-keygen
ssh-copy-id user@slave
然后从master连接到slave:ssh user@slave
在奴隶上:
ssh-keygen
ssh-copy-id user@master
从slave连接到master:ssh user@master
启用authorized_keys 文件夹中的密钥:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
我们在这里,简单易行!
【讨论】:
无密码 SSH 是单向的。在 Hadoop 集群的情况下,如果您启用从 master 到 slave 的无密码 SSH,您仍然需要密码来验证并从任何 slave 连接到 master。
这是因为无密码 SSH 基本上是公钥认证。当主节点公钥导出到从节点时,建立身份信任,以便主节点中的各个用户可以使用其公钥而不是提供用户密码来对从节点进行身份验证。
如果我们想要实现从slave到master的SSH相同,那么每个slave节点的公钥都应该被导出并添加到master的授权密钥文件中,这与原始发布者在他的更新中提到的一致。
关于无密码 SSH 概念的更多阐述可以看in this article。
【讨论】: