Can';t从MySQL工作台进行远程连接

Can';t从MySQL工作台进行远程连接,mysql,ssh,mysql-workbench,Mysql,Ssh,Mysql Workbench,我正在尝试从Windows 10连接到Ubunutu 14.04。我正在使用ssh。 该连接似乎已登录到计算机,但未连接到数据库。我知道我使用的是正确的密码。 错误消息是: Failed to connect to MYSQL at localhost:3306 through SSH tunnel at username@xx.xx.xx.xx with user xxxx Unable to establish SSL connection 日志显示: 12:27:02 [INF][

我正在尝试从Windows 10连接到Ubunutu 14.04。我正在使用ssh。 该连接似乎已登录到计算机,但未连接到数据库。我知道我使用的是正确的密码。 错误消息是:

Failed to connect to MYSQL at localhost:3306 through SSH tunnel at username@xx.xx.xx.xx with user xxxx 
Unable to establish SSL connection 
日志显示:

12:27:02 [INF][ SSH tunnel]: Existing SSH tunnel not found, opening new one 
12:27:06 [INF][ SSH tunnel]: Opening SSH tunnel to xx.xx.xx.xx:22 
12:27:08 [INF][ SSH tunnel]: TunnelManager.wait_connection returned OK 
12:27:08 [INF][sshtunnel.py:set_keepalive:502]: SSH KeepAlive setting skipped. 
12:27:08 [INF][ SSH tunnel]: SSH tunnel connect executed OK
我要连接的用户是这样创建的:

mysql> create database fred 
mysql> CREATE USER 'fred'@'localhost' IDENTIFIED BY 'xxxx'; 
mysql> CREATE USER 'fred'@'%' IDENTIFIED BY 'xxx'; 
mysql> grant all privileges on fred.* to 'fred'@'x'; 
mysql> grant all privileges on fred.* to 'fred@'%' 
我可以像这样从远程ubuntu机器连接

mysql --user=fred --host=xx.xx.xx.xx --port=3306 -p
在/var/log/mysql中没有提到连接

/var/log/auth显示

Dec  7 14:03:46 www.example.com sshd[14474]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Dec  7 14:03:47 www.example.com sshd[14474]: Accepted publickey for root from xx.xx.xx.xx port 53591 ssh2: RSA ...
Dec  7 14:03:47 www.example.com sshd[14474]: pam_unix(sshd:session): session opened for user root by (uid=0)
ssh连接是到root的,但是我已经用一个非root用户尝试过了,结果没有什么不同

以下是“连接”选项卡中的详细信息:

SSH Hostname: xx.xx.xx.xx
SSH Username root
SSH KeyFile: [dir]\.ssh\id_rsa
MySQL Hostname:localhost
MySQL Server Port: 3306
username: xxxx

我认为您的问题在于正确配置SSH服务器,使其使用密钥而不是密码。一旦签入其配置文件/etc/ssh/sshd_config&将负责TCP转发的参数从否更改为是,从而允许TCP转发是。

仔细查看错误消息。它说SSL连接无法建立。它没有说任何关于SSH的内容。因此,我猜MySQL Workbench设置为对连接使用SSL加密,而服务器不支持SSL加密。您可以在连接设置中更改:

或者,您可以使用SSL向导(也可从本页获得)为正确的SSL连接生成SSL证书


好消息:从服务器5.7.9开始,默认情况下启用SSL,服务器和客户端软件会自动设置SSL详细信息。MySQL Workbench当然也可以使用它。

您能告诉我们如何在ssh中配置隧道吗?您应该仔细检查是否已经设置了从本地端口3306到远程端口3306的隧道。除了MySQL Workbench连接页面中的详细信息之外,我没有设置任何其他内容。我想它负责修建隧道。显然,似乎正在与服务器建立连接。这之后发生的事情似乎才是问题所在。我已经编辑了这个问题,以包括连接页面中的详细信息。在sshd_配置中没有AllowTcpForwarding的条目。我添加了它并重新启动了ssh,但它仍然给我相同的错误。我在sshd_配置文件中没有AllowTcpForwarding选项。有什么不对劲吗?