【问题标题】:Connecting to MySQL RDS instance through AWS bastion host from a MySQL client从 MySQL 客户端通过 AWS 堡垒主机连接到 MySQL RDS 实例
【发布时间】:2017-11-21 10:52:52
【问题描述】:

我正在尝试从 MySQL 客户端工具连接到 RDS 实例。但我发现的问题是它只能通过 SSH 连接到一台机器(AWS 堡垒主机)。但是如何通过 AWS 堡垒主机在内部连接到 RDS 实例?

Consider the machines A, B and C where, 
A-> local machine
B-> AWS ec2-instance
C-> RDS instance

在将机器 B 作为 AWS 堡垒主机时,是否可以通过 AWS 堡垒主机(机器 B)通过 SSH 连接到 RDS 实例,只需从机器 A 连接到机器 B?

即,在通过 SSH 从机器 A 连接到机器 B 时,机器 B 应自动 SSH 并连接到 MySQL RDS 实例(机器 C)。

【问题讨论】:

  • 您检查过您的安全组吗?您需要确认连接到机器 C 的安全组允许从机器 B 访问
  • @Venkata.Mutyala 是的,机器 C 可以从机器 B 访问。但我的问题是,如何使用 ssh 密钥从 MySQL 客户端通过 AWS 堡垒主机连接到 RDS MySQL
  • 这取决于which MySQL 客户端工具。 Workbench(通常是可怕的软件)显然可以自己处理 SSH 隧道。其他客户端也可能具有本机支持。或者,您可以轻松地从命令行构建隧道。你的客户是什么?另请注意,机器 B 不会在任何地方“SSH”。 MySQL 客户端/服务器协议本身不使用 SSH,RDS 也不使用 SSH。从堡垒到 RDS,它只是 TCP,而不是 SSH。
  • 想一想,我的最后两句话可能会清除您忽略的一些东西。您只需需要 ssh 到堡垒主机。隧道在你和它之间,它可以访问 RDS。

标签: mysql amazon-web-services amazon-s3 amazon-ec2 mysql-workbench


【解决方案1】:

正如他们之前建议的,您需要通过 ssh 隧道进行连接。

您可以使用 mysql 客户端或从控制台执行此操作:

ssh user@example.com -L 3307:{target_host}:3306 -N

注意:3306是你设置隧道连接mysql客户端的端口,你将再次使用它来运行客户端。

然后从隧道再次运行mysql客户端:

mysql --host={target_host} --port=3306 -u user -p

【讨论】:

  • 恕我直言,这不起作用。在机器 A 中,我们无法在没有隧道的情况下访问 target_host
猜你喜欢
  • 2021-10-16
  • 1970-01-01
  • 2015-04-30
  • 2018-07-16
  • 1970-01-01
  • 2020-04-28
  • 2021-10-17
  • 2019-01-31
  • 2018-12-19
相关资源
最近更新 更多