【问题标题】:RDS Accessible but fails password auth when not in VPCRDS 可访问,但不在 VPC 中时密码验证失败
【发布时间】:2022-02-09 13:23:25
【问题描述】:

尽管遵循了文档,但我无法从本地计算机连接到我的 RDS 实例。问题是,我可以从 VPC 中的 ec2 实例进行连接,但是在我的本地计算机上使用相同的凭据时,我得到“密码错误”。

我的尝试:

我已将 RDS 配置为公共访问,遵循此处的故障排除文档:RDS Troubleshooting 另外:

  • 确认 RDS 可公开访问 √
  • 确认子网 ACL 允许 postgres 流量 √
  • 连接互联网网关到 VPC √
  • 将公有子网与公有路由表关联 √
  • 启用 VPC dns 解析 √
  • 在安全组中启用来自 0.0.0.0/0 的传入 postgres 流量 √

我什至能够在本地测试连接并确认我实际上能够在本地计算机上使用以下命令连接到 RDS 实例:

nc -zv <rds.dns> <port>

返回:

xxx.xxx.us-east-2.rds.amazonaws.com [ip.address] 5432 (postgresql) open

这向我表明我的计算机可以通过网络访问 RDS 实例,但是,当我尝试使用 PSQL 命令登录时:

sudo psql \
   --host=xxx.xxx.us-east-2.rds.amazonaws.com \
   --port=5432 \
   --username=<dbuser> \
   --password \
   --dbname=<dbname> 

然后系统提示我输入密码,我得到了密码:

...
Password:
sudo: 3 incorrect password attempts

奇怪的是,这个密码在 VPC 内的 ec2 实例中可以正常工作,所以我完全不知道为什么我的本地计算机上的 psql 客户端的密码验证失败。

任何帮助、文档或参考将不胜感激,在此先感谢。

【问题讨论】:

  • 也许可以通过公共路由从 vpc 外部的 EC2 尝试?
  • 兄弟,您尝试过使用 postgres GUI 客户端连接吗?
  • 该错误消息来自 sudo,而不是来自 PostgreSQL。 PostgreSQL 不会那样说它的消息,也不会给你 3 次机会。并且显然不会在其消息前加上 'sudo:'
  • 哎呀,问题是使用“sudo”,不使用 sudo,我可以使用上述配置在 VPC 外部进行连接......很好!非常感谢。

标签: postgresql amazon-web-services amazon-rds


【解决方案1】:

原来问题出在命令中

sudo psql \
   --host=xxx.xxx.us-east-2.rds.amazonaws.com \
   --port=5432 \
   --username=<dbuser> \
   --password \
   --dbname=<dbname> 

正如@jjanes 指出的那样,错误是在此命令中使用了“sudo”。

psql \
   --host=xxx.xxx.us-east-2.rds.amazonaws.com \
   --port=5432 \
   --username=<dbuser> \
   --password \
   --dbname=<dbname> 

VPC 中的上述配置按预期工作。

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2018-11-11
    • 2018-06-07
    • 2020-09-21
    • 2015-04-19
    • 2020-10-24
    • 2022-12-05
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多