1

有谁知道在哪里可以找到涉及堡垒主机和 AWS RDS 实例的 ssh 连接所需的参数所需的值?

我在下面列出了到目前为止我能找到的内容:

  • SSH Hostname- 在 AWS 控制台中为 RDS 实例提供端点

    • SSH Username- 我在各地的教程中都看到它ec2-user,我也应该使用它吗?

    • SSH password- 我需要这个吗,因为我已经有一个用于密钥对的 .pem 文件?`

    • SSH 密钥文件` - 得到这个
    • MySQL Hostname- 我不知道该放什么。
    • MYSQL Server Port- 3306
    • Username- 根
    • Password- 不确定这是指哪个密码
4

2 回答 2

2

有两种方法,

  • 如果您尝试从本地计算机访问 RDS 实例,则需要确保从 db 设置启用公共访问。通过这种方式,您可以使用 db 端点和用户名密码进行连接。

  • 另一种方法是通过 ssh 隧道,其中数据库不需要公开访问,但需要可以从 vpc 内部的实例访问。您需要使用实例的凭据(如用户名密码或密钥文件)通过 ssh 连接到机器。然后,一旦连接到 ec2 实例,您就可以使用 db 端点凭证使用 SQL 连接命令连接到 RDS 实例。您需要配置安全组以允许来自 RDS 和 ec2 的连接执行此操作。

参数详情:

  • SSH 主机名 - Ec2 实例外部 IP 地址或 DNS 名称。可以在 ec2 控制台描述选项卡上找到。

  • SSH 用户名 - ec2 实例用户名。可以在 ec2 控制台 -> ec2 详细信息中找到。

  • SSH 密码 - ec2 实例密码。- 如果使用密钥文件,则不需要。

  • SSH 密钥文件` - 创建 ec2 实例时创建或使用的 pem 文件。

  • MySQL 主机名 - RDS 端点 - 您可以从 RDS 控制台获取。

  • MYSQL 服务器端口 - 通常为 3306,但如果在 RDS 创建期间修改,请在 RDS 控制台中检查。

  • 用户名 - 创建 RDS 时设置的数据库用户名。

  • 密码 - 创建实例时设置的数据库密码。

于 2020-02-16T12:07:37.303 回答
1

首先,您不是通过 SSH 连接到数据库,SSH 仅适用于 EC2 实例。合乎逻辑的步骤是:

  1. 从本地计算机到 EC2 实例的 SSH(可选,取决于下面的设置)
  2. mysql -H (hostname) -u admin -p使用类似提示输入密码的方式连接到数据库。

如果您想直接连接到数据库,请确保将您的 IP 列入数据库安全组的白名单。默认情况下,安全组不允许您直接连接到它,默认情况下也不允许您连接到任何地方。

如果您想从堡垒主机连接到数据库,再次,您需要将堡垒主机的 IP 列入白名单。

安全组基本 ALLOW from IP on PORT。所以对于 MySQL,端口将是 3306。

在 AWS 中,为什么这可能会失败有很多变数。

  • 这些资源是否在同一个区域?
  • 这些资源是否在同一个子网中?子网是私有的还是公有的?

在RDS的配置过程中,至少在过去,你在配置过程中根本无法设置安全组。您总是必须记住返回并单击Modify,然后进入并给它一个安全组。

围绕安全组的最佳实践是

  1. 为您的堡垒主机实例创建一个,只允许 22 个到您的家庭 IP。
  2. 为您的 RDS 实例创建一个,允许来自堡垒主机的安全组 ID 的 3306。这样您就不必担心堡垒主机 IP 的变化,任何具有堡垒主机安全组的实例都可以访问此 RDS 上的 3306。
  3. 将安全组分配给正确的资源。

如果你仍然有问题,我可以更深入地了解这一点。

于 2020-02-16T17:01:40.683 回答