linux - 如何在集群中使用单键值对ssh

标签 linux security hadoop ssh

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

最佳答案

我假设您指的是 Linux 机器。

每台机器上必须有一个 ~/.ssh 目录 chmod 700 在将发起或接收连接的帐户下。

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

不要忘记默认情况下最近 ssh 不接受弱(<2048 位) key 。

必须执行以下操作才能发起连接。

  1. 您的私钥必须适本地放在 ~/.ssh/id_rsa 或 ~/.ssh/id_dsa 中。您可以使用其他名称,但它必须包含在发出请求的机器上的 -i 选项中,以明确指示私钥。
  2. 您的私钥必须是 chmod 600。

现在允许机器接收一个请求:

  1. 您的公钥必须放在将接收连接的帐户下名为 ~/.ssh/authorized_keys 的文件中。您也可以在此处放置允许通过此帐户连接的其他 key 。如果您在 vi 中并将 key 从 PuTTY 的粘贴缓冲区粘贴到文件中,那么一件特别棘手的事情是 key 以“ssh-”开头。如果您不处于插入模式,第一个“s”将使 vi 进入插入模式,而键的其余部分看起来很好。但是您会在 key 的开头缺少一个“s”。我花了好几天才找到。
  2. 我喜欢 chmod 600 ~/.ssh/authorized_keys,但通常不需要。
  3. 现在,您必须将主机指纹添加到缓存中。转到机器 A,然后通过 ssh 连接到机器 B。第一次,您会收到类似“是否要添加...到主机 key 缓存?”的查询。这将非常有效地停止您的自动化过程。您有几个选择,具体取决于您的情况:从 5 台机器中的每台机器手动 ssh 20 次到另外 4 台机器并说"is"。 b.您可以获得名为“known_hosts”的文件(这就是 ssh 所说的“缓存”)并合并条目,以便可以将相同的 host_keys 复制到所有机器。 C。您可以将主机指纹放在/etc/ssh/ssh_known_hosts 中。 d.将指纹放入 DNS(参见 man ssh)。 e.只需在您的 ssh 配置中设置 StrictHostKeyChecking 将其关闭(不推荐)。

关于linux - 如何在集群中使用单键值对ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46558248/

相关文章:

java - Runtime.getRuntime().exec() 没有在centos上运行ffmpeg命令

reactjs - 如何检查JHipster中子菜单项的权限

php - 防止网页游戏AJAX作弊

Hadoop 从属文件配置

java - Oozie 4.3.0 构建错误

linux - awk: 一个文本文件中的词频,如何输出到myFile.txt?

Linux-0.11,file_dev.c中file_write函数代码错误

linux - 使用调度程序启动的 Kettle 作业没有文件夹许可 (Linux)

cross-domain - 如何保护敏感信息免遭跨站点访问?

java - 如何在hadoop级联中获取输入文件名