pipe理EC2实例之间的SSH密钥

我似乎有越来越多的EC2实例,并且都运行良好,花花绿绿。 然而,我正面临的一个问题就是搞清楚在机器之间进行SSH连接的策略。 通过我的私钥复制到每个实例是反生产性的,并且当我需要从我的个人计算机进行SSH访问时,它工作正常,但是当我需要从一台机器到另一台机器间的SSH时,无法正常工作。

有什么体面的战略来解决这个问题? 如何在您的EC2实例集群之间进行SSH连接?

你使用ssh-agent

 SSH代理
 SSH-ADD
 ssh  - 一个远程机器

为了更容易使用,添加

主机远程机器
 ForwardAgent是

到你的~/.ssh/config

那么考虑到我所有的EC2实例都是使用相同的SSH密钥来启动的,我只需要在SSH代理中加载一个密钥。 这就是说,我通常不会以root身份作为事情或策略,所以我的EC2实例启动并连接到Puppet服务器,然后对其进行configuration,包括安装任何应用程序,以及设置用户帐户及其各自的SSH身份密钥,以及build立sudo权限。 然后,我只是将我个人用户的私人SSH身份加载到我的笔记本电脑上的ssh-agent上,从它的LUKSencryption的USB驱动器。 然后在EC2实例初始化期间放置的根SSH标识密钥就在那里作为备份。

使用Puppet的另一个好处是我可以使用puppet服务器作为任何实例的跳转盒,实际上Puppet会自动为我更新系统的ssh_known_hosts和/ etc / hosts文件。