在 AWS VPC 内自由 SSH

SSH freely inside AWS VPC

如何在 VPC 内配置我的 EC2 机器,以便能够在它们之间无需密码或密钥的情况下进行 ssh?

我想做的是访问一台机器(它有一个 public IP)并从这台机器自由访问所有其他机器。

有可能吗?

你有两个选择:

  1. 使用 SSH 代理通过 ssh 连接将您的密钥传递给其他服务器。这种方法更安全,因为私钥从未安装在服务器上,但对于需要通过 ssh 连接的脚本来说效果不佳。

  2. 在您要连接的服务器上生成一个密钥,并在您要连接的服务器上安装 public 密钥。

首先,您的 VPC 中的所有机器都需要设置为接受来自本地机器的密钥 - 您是手动分发还是使用 Chef 等自动化工具为您执行此操作取决于您。

接下来您需要在本地机器上 运行 一个 ssh-agent,并给它您的密钥。基本上它位于后台并在您的 ssh 客户端需要时分发密钥。在 Windows 上,您可以使用与 PuTTY 配合得很好的 Pageant。如果您使用 Linux,则需要 运行 ssh-agent,并使用 ssh-add 将您的密钥提供给它。请注意,完全有可能自动 运行 ssh-agent,因此您仍然可以使用脚本 - 我按照 this.

进行了设置

最后,当您与公开可见的 AWS 服务器建立初始连接时,您需要允许 SSH 代理转发。在 PuTTY 中,您可以在 SSH / Auth / Allow agent forwarding 下执行此操作(确保您 指定私钥文件)。从 Linux 命令行,您需要编辑 ~/.ssh/config 文件。有一个很好的设置指南 here