如何使用堡垒机安全地连接到私有子网中的 EC2 Linux 实例?

2 分钟阅读
0

我想使用堡垒机连接到在私有子网中运行的 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例。

简短描述

EC2 Linux 实例使用 SSH 密钥对文件作为默认的身份验证方法。密钥对文件无需使用 SSH 用户名和密码。为了维护安全的环境,切勿在堡垒机上存储私钥。要使用堡垒机进行连接,请在客户端上使用 ssh-agent 转发。ssh-agent 允许管理员从堡垒机连接到另一个实例,而无需在堡垒机上存储私钥。

解决方法

先决条件

  • 堡垒机必须存在于 VPC 的公有子网中,这样才能通过互联网访问主机。
  • 将私有 Linux 实例的安全组配置为仅接受来自堡垒机的 SSH 连接。
  • 将堡垒机的安全组配置为仅允许来自已知和可信 IP 地址的 SSH 连接(TCP/22)。

在 macOS 或 Linux 客户端上配置 ssh-agent 转发

**注意:**默认情况下,openssh-clients 包安装在大多数 Linux 和 macOS 发行版上,包含 ssh-agent

1.    运行以下命令以在后台启动 ssh-agentssh-agent 会将您的 SSH 密钥存储到内存中。

#  eval $(ssh-agent)

2.    运行以下命令以将 SSH 密钥添加到 ssh-agent

# ssh-add "/path/to/key.pem"

3.    运行以下命令以验证是否已将密钥添加到 ssh-agent

# ssh-add -l

4.    运行以下命令以连接到堡垒机。在以下命令中,将 UserBastion_Host_****IP_address 替换为您用例的相应值。

# ssh -A User@Bastion_Host_IP_Address

**注意:**确保在前面的命令中包含 -A 标志。如果您未添加 -A 标志,则 ssh-agent 转发将不起作用,因为未将密钥添加到内存中。将 SSH 密钥添加到内存后,您不必使用 -i 标志指定 SSH 密钥本身。这是因为 SSH 会自动尝试使用 ssh-agent 中保存的所有 SSH 密钥。

5.    连接到堡垒机后,运行以下命令,以连接到私有 Linux 实例。在以下命令中,将 UserPrivate_instance_IP_address 替换为您用例的相应值。

# ssh User@Private_instance_IP_address

如果将私有实例的匹配私钥加载到 ssh-agent 中,则连接成功。

在 Windows 客户端上配置 ssh-agent 转发

您可以使用 PuTTY(适用于 Windows 的免费 SSH 客户端)从 Windows 连接到 Linux VPC 实例。要获取 SSH 代理功能,请使用 Pageant(一种 SSH 身份验证代理)。Pageant 会将您的私钥保存到内存中。安装 Pageant 后,您可以使用 PuTTY 中的代理转发选项连接到私有子网中的实例。

1.    从 PuTTY 下载页面下载并安装 PuTTY 和 Pageant。

2.    PuTTY 未原生支持 SSH 密钥的 PEM 格式。要使用 PuTTY 连接到您的实例,请使用 PuTTYgen 将您的私钥从 PEM 格式转换为 PuTTY 格式。PuTTYgen 可从 PuTTY 下载页面获得。有关详细信息,请参阅使用 PuTTYgen 转换私钥

3.    打开 Pageant 并添加私钥。要将 PuTTY 格式的密钥导入到 Pageant 中,请从开始菜单启动 Pageant 应用程序。默认情况下,Pageant 在系统托盘中以最小化方式打开。

**注意:**如果 Pageant 图标在系统托盘中不可见,请使用任务栏设置将其添加。有关详细信息,请参阅 support.microsoft.com 网站上的自定义任务栏通知区域

4.    要添加您的 SSH 密钥,请右键单击系统托盘中的 Pageant 图标,然后选择添加密钥。要查看添加的密钥,请右键单击系统托盘中的 Pageant 图标,然后选择查看密钥

5.    完成以下步骤,以启动 PuTTY SSH 会话并打开允许代理转发

  • 开始菜单中,依次选择所有程序、PuTTY、PuTTY
  • 类别窗格中,选择会话
  • 主机名字段中,执行以下一项操作:
    要使用您实例的公有 DNS 名称进行连接,请输入 user-name@instance-public-dns
    要使用您实例的 IPv4 地址进行连接,请输入 user-name@instance-IPv4-address
  • 选择连接类型SSH,并确保端口值为 22
  • 类别窗格中,展开连接SSH,然后选择身份验证
  • 选择允许代理转发
  • 选择打开

6.    您可以从堡垒机连接到 VPC 中的任何实例,而无需在堡垒机上使用 SSH 私钥。使用以下命令连接到其他实例。在以下命令中,将 UserPrivate_instance_IP_address 替换为您用例的相应值。

# ssh User@Private_instance_IP_address

如果将私有实例的匹配私钥加载到 Pageant 中,则连接成功。

AWS 官方
AWS 官方已更新 10 个月前