自动SSH访问ec2

时间:2012-05-28 16:59:59

标签: ubuntu ssh amazon-ec2 ssh-keys

我需要在主/从配置中自动无密码访问ec2实例。

因为它有效,但我怀疑我遇到了障碍。

以下是允许ec2主站进入ec2从站的步骤。

在主人身上,我会做以下事情:

cd /home/ubuntu/.ssh
ssh-keygen -f id_rsa -t rsa -N ''
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa 

在slave上我将上面生成的id_rsa.pub文件添加到:

/home/ubuntu/.ssh/authorized_keys

所以...问题是,当我进入机器时,它要求以下内容:

RSA key fingerprint is b4:50:7e:5c:5f:41:f5:cd:95:91:78:5b:8a:1f:97:df.
Are you sure you want to continue connecting (yes/no)?

我正在尝试运行的程序; tsung,即使现在不需要密码,似乎也无法使用提示。所以,程序失败了。如果我ssh到奴隶,因此添加密钥,那么现在所有工作,不再需要是/否。所以..问题是,如何自动删除提示?我可以写一个脚本来自动化,例如虽然看起来很啰嗦。

2 个答案:

答案 0 :(得分:1)

您可以使用ssh-keyscan(通常是OpenSSH发行版的一部分)来获取服务器的主机密钥并将其存储在known_hosts文件中。一旦密钥在该文件中,就不会显示进一步的提示。有关详细信息,请参见ssh-keyscan联机帮助页。

当然,SSH要求您验证服务器的身份是有原因的,因此这样做会使您面临某些安全风险。根据您创建实例的方式,您可以通过以下方式解决此问题:(a)每次在服务器上使用相同的主机密钥,(b)将其包含在客户端映像中(或者您执行的任何操作)。

答案 1 :(得分:0)

只有在您第一次连接时才会询问是/否问题,以便它可以保存该握手信息。它永远不会再问它,所以做一次,手动连接,然后自动化应该适用于未来的访问。

这是SSH的基本部分,而不是特别是AWS。