0

我正在使用 aws java sdk 启动 EC2 实例(运行 Ubuntu 12.04)并在其上运行分布式工具,该工具使用openMPI在节点之间传递消息,而 openMPI 使用 SSH 将节点相互连接。

问题是 EC2 实例默认情况下不会针对 SSH 连接相互验证,本教程展示了如何通过生成密钥并将它们添加到节点来设置 SSH,但是,当我尝试使用生成的密钥将生成的密钥添加到从属服务器时命令

$ scp /home/mpiuser/.ssh/id_dsa.pub mpiuser@slave1:.ssh/authorized_keys

我仍然获得许可被拒绝。此外,在生成新密钥后,我无法使用从亚马逊获得的“.pem”密钥登录。

我对 SSH 密钥没有经验,但我想有一些方法来配置每个 EC2 实例(当它第一次创建时)以对其他实例进行身份验证,例如通过将密钥复制到每个实例中。这可能吗?如何做到?

PS:一旦启动,我就可以连接到每个实例,并且可以通过 SSH 在它们上执行任何命令。

4

1 回答 1

0

我找到了解决方案,我在用于创建 EC2 实例的映像 (AMI) 中添加了亚马逊私钥 (.pem),并通过添加新的身份文件更改了 /etc/ssh/ssh_config 文件

IdentityFile /path/to/the/key/file

这使得 SSH 在尝试连接到使用相同密钥创建的任何其他 EC2 实例时识别 .pem 私钥。

我也更改StrictHostKeyChecking为 no,这停止了“无法建立主机 xxx 的真实性”的消息,该消息需要用户交互才能继续连接到该主机。

于 2013-07-21T14:05:20.450 回答