MariaDB OpeLDAP 身份验证在本地进行,而不是远程进行?

MariaDB OpeLDAP 身份验证在本地进行,而不是远程进行?

我在 Ubuntu 14.04 上安装了 MySQL(MariaDB),使用文档从我们的 OpenLDAP 实例对用户进行身份验证这里。当我通过 ssh 进入服务器并发出命令时,mysql -u user101 -p我可以顺利进行身份验证(user101 是 LDAP 用户;在 mysql 中没有密码)。当我尝试使用远程连接时,身份验证失败,并显示以下内容:

$ mysql --ssl -u user101 -p -h myserver
Enter password: 
ERROR 2059 (HY000): Authentication plugin 'dialog' cannot be loaded: /usr/lib/mysql/plugin/dialog.so: cannot open shared object file: No such file or directory

在服务器上,控制台输出以下消息:

# 2017 Jul 18 08:27:05 myserver pam_unix(mysql:auth): auth could not identify password for [user101]

文档这里提到了dialog插件,但说无需安装或启用任何东西所以不知道该怎么做。我没有pam_user_map.c按照该链接中提到的进行编译或安装,因为本地身份验证工作正常。

我已授予用户使用%mysql 条目的主机名进行远程访问的权限:

CREATE USER 'user101'@'%' IDENTIFIED VIA pam USING 'mariadb';
GRANT ALL PRIVILEGES ON test.* TO 'user101'@'%' IDENTIFIED VIA pam;

我假设其余的 LDAP 设置(来自文档)是正确的,否则服务器不会在本地对用户进行身份验证。我是不是漏掉了什么?为什么这在本地有效,但在远程无效?

答案1

这就完成了(在客户端) aptitude install libmariadbclient18

答案2

如果您想使用 mysql 客户端而不是 mariadb 客户端,您需要传递以下选项: mysql --enable-cleartext-plugin --ssl -u user101 -p -h myserver

相关内容