2

我在 Amazon RDS 上创建了一个 mysql 实例,它为我提供了以下设置: 在此处输入图像描述

我试图通过 MySQL Workbench 连接到这个 mysql 服务器,它总是说 SSH 隧道没有经过身份验证。

我试图通过命令提示符连接到服务器,它工作正常。这是我使用的命令:

mysql -h ['Endpoint' from setting] --ssl_ca=C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem -P 3306 - u ['Username' from setting] -p

这提示我输入密码,它工作正常!

现在,当我使用 MySQL Workbench 尝试它时,我收到错误,它在日志中显示:

error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
19:17:39 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details

这是设置:

SSH HostName: ['Endpoint' from settings]
SSH Username: ['Username' from settings]
SSH Password: password
SSH Key File: C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem
MySQL HostName: ['Endpoint' from settings]
MySQL Server Port: 3306
Username: ['Username' from settings]
Password: password same as SSH password
Default Schema: ['DB Name' from settings]

需要注意的一点是,当我能够通过 Workbench 成功连接到服务器时,我在服务器上运行了以下命令。

GRANT USAGE ON *.* TO 'username'@'%' REQUIRE SSL;

此外,我在 RDS 上的“数据库安全组”下提供了我的本地 IP 地址 (CIDR/IP) 访问权限。

4

1 回答 1

14

如果来自命令行的连接显然不使用 SSH,为什么还要尝试 MySQL Workbench 中的 SSH 选项?从连接设置中删除它。

而是设置一个正常的 TCP/IP 连接,将 MySQL 主机设置为您的端点。切换到 SSL 设置页面并激活 SSL + 设置您的证书文件位置,就像您在命令行中所做的那样。

附加信息:

SSH 用于 MySQL Workbench 与远程系统的通信(文件访问、服务器控制等,另见http://en.wikipedia.org/wiki/Secure_Shell)。如果您只想做 MySQL 工作(运行查询),则不需要 SSH 连接。它需要在端点上运行 SSH 服务器来创建隧道。如果您想管理服务器(编辑配置文件,控制服务器进程等)或服务器不可直接访问(例如,位于不允许与 MySQL 通信的防火墙后面,则需要创建 SSH 连接端口,出于安全原因)。对于 Windows,还有一个使用 WMI 的本地网络解决方案。

SSL 是 MySQL 客户端和服务器 ( http://en.wikipedia.org/wiki/Transport_Layer_Security ) 之间通信的加密。它是 MySQL 用于通信的协议的一部分,并且完全独立于 MySQL Workbench 或任何 SSH 隧道。

于 2014-01-27T08:57:47.277 回答