我正在尝试通过 MySQL Workbench 连接到 AWS RDS MySQL 实例(私有子网)。我的 VPC 包含:
我可以通过 EC2 访问 RDS,但无法通过本地计算机连接到 RDS 实例。据我了解,这是因为我没有 SSH 密钥对。
EC2 实例是在我创建托管 REST API 的 ElasticBeanstalk 应用程序时创建的。似乎未创建 SSH 密钥对。如果没有 SSH 密钥,我无法从本地计算机访问 RDS 实例。
如何创建新的 SSH 密钥对并将其分配给我的 EC2 实例?
使用 MySQL Workbench 通过标准 TCP/IP over SSH 连接到 MySQL 实例所需的设置:
任何帮助将不胜感激!
首先,为了向未来的读者澄清,您无法从本地计算机连接到 RDS — 不是因为没有 SSH 密钥对,而是因为您的 RDS 实例位于私有子网中。
换句话说,即使您已将公共 IP 与 RDS 实例关联,您也无法连接到它,因为私有子网的路由表不会通过 Internet 网关路由 0.0.0.0/0 流量。
澄清一下,如果您想连接到私有 RDS 实例,您可以使用公共 EC2 实例作为代理:为此,您需要一个新的 SSH 密钥。
您有两个选择:
需要明确的是,您需要将 RDS 连接到 EC2 实例。不幸的是,您无法连接到 EC2 实例,因为您丢失了
pem file
。
EC2 connectivity
有多种方法。
您可能有一个 IAM with EC2 connection permission
或 EC2 root
。
要通过 SSH 将您的实例连接到本地系统,只有一种简单的方法。
采取下列行动, 生成 SSH 密钥对,
ssh-keygen -b 4096 -t rsa
要查看您的公钥,
cat .ssh/id_rsa.pub.
要关闭它,只需复制您的公钥,单击 EC2 连接,然后将您的密钥粘贴到
.ssh/authorized_keys
。
现在,
id_rsa private key
就是你的pem file
。就在它之外进行连接。
ssh -i .ssh/id_rsa ubuntu@<public ip>