2017-10-04 66 views
0

我必须配置hadoop群集。为此,要求所有系统都应该能够在无密码模式下相互ssh。由于安全性,我只允许基于密钥的ssh(没有密码)。集群中有5个系统。我必须生成单个键值对。如何将所有其他系统配置为仅使用此密钥对,以便它们可以在无密码模式下彼此ssh。如何使用单个键值对在群集中的ssh

+0

请查看以下信息https://serverfault.com/questions/2429/how-do-you-setup-ssh-to-authenticate-using-keys-instead-of-a-username-password –

回答

0

我假设你的意思是Linux机器。

必须有一个〜/ .ssh目录下的每个计算机上的chmod 700将发起或接收连接的帐户。

(私人)密钥必须在没有密码的情况下生成。

不要忘记,默认弱(< 2048位)密钥最近不被ssh接受。

以下必须完成来源一个连接。

  1. 根据需要,您的私钥必须放在〜/ .ssh/id_rsa或〜/ .ssh/id_dsa中。您可以使用其他名称,但必须将其包含在发出请求的计算机上的-i选项上以显式指示私钥。
  2. 你的私有密钥必须允许机器搭配chmod 600

我们收到的请求:

  1. 你的公钥必须被放置在一个名为的〜/ .ssh文件/该账户下的authorized_keys将收到的连接。您也可以在此处放置允许通过此帐户连接的其他密钥。一个特别棘手的问题是,如果你在vi中并将密钥从PuTTY的粘贴缓冲区粘贴到文件中,则密钥以“ssh-”开头。如果你不在插入模式下,第一个“s”将把vi放入插入模式,其余的键看起来就好了。但是在密钥的开头你会错过一个“s”。我花了几天的时间找到它。
  2. 我喜欢chmod 600〜/ .ssh/authorized_keys,但通常不需要。
  3. 现在,您必须将主机指纹添加到缓存。转到机器A,然后ssh转到机器B.第一次,您将收到一个类似“您是否要添加...到主机密钥缓存?”的查询。这将非常有效地停止您的自动化过程。你有几个选择,这取决于你的情况:a。从5台机器中的每台机器手动ssh 20次到另外4台机器并说“是”。湾你可以得到名为“known_hosts”的文件(这就是ssh所称的“缓存”),并合并条目,以便可以将相同的host_keys复制到所有机器上。 C。您可以将主机指纹放在/ etc/ssh/ssh_known_hosts中。 d。将指纹放入DNS(请参阅man ssh)。即只需在您的ssh配置中设置StrictHostKeyChecking即可关闭它(不推荐)。
相关问题