我拥有的 EC2 实例数量似乎在不断增加,而且一切都运行良好。然而,我面临的一个问题是找出在机器之间进行 SSH 的策略。将我的私钥复制到每个实例上是适得其反的,当我需要从我的个人机器进行 SSH 时,它可以正常工作,但当我需要从一台机器到另一台机器进行 SSH 时,它就不行了。
有哪些不错的策略可以解决这个问题?您如何在 EC2 实例集群之间进行 SSH 连接?
答案1
你用ssh-agent
:
ssh 代理 ssh 添加 ssh -A 远程机器
为了方便使用,添加
主机远程机器 ForwardAgent 是
你的~/.ssh/config
答案2
好吧,鉴于我的所有 EC2 实例都是使用相同的 root SSH 密钥启动的,我只需要将一个密钥加载到 SSH 代理中。也就是说,我通常不会以 root 身份进行 SSH 连接,因此我的 EC2 实例启动并连接到 Puppet 服务器,然后 Puppet 服务器对其进行配置,包括安装任何应用程序以及设置用户帐户及其各自的 SSH 身份密钥并建立 sudo 权限。然后,我只需将我的个人用户私有 SSH 身份从笔记本电脑的 LUKS 加密 USB 驱动器加载到 ssh-agent 中即可。在 EC2 实例初始化期间设置的 root SSH 身份密钥只是作为备份。
使用 Puppet 的另一个优点是,我可以使用 Puppet 服务器作为跳转框进入任何实例,并让 Puppet 自动为我更新系统的 ssh_known_hosts 和 /etc/hosts 文件。