我似乎有越来越多的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文件。