Wordpress MySQL 数据库中使用凭据进行 SFTP 身份验证?

Wordpress MySQL 数据库中使用凭据进行 SFTP 身份验证?

我正在尝试寻找一种解决方案,允许用户使用提供的用户名/密钥组合(存储在 Wordpress 安装的 MySQL 数据库中)通过 SFTP 连接到服务器,而无需不断保持两个或多个独立的系统同步。

我在 Stackoverflow 上问了这个问题,但我觉得在这里回答会更好。

这是 MySQL 查询,它获取两列,其中包含用户名和 api 密钥,用户将其输入到他们的 SFTP 客户端作为密码:

SELECT m.meta_value, u.user_login
FROM wp_users AS u, wp_usermeta AS m
WHERE m.user_id = u.ID AND m.meta_key = "user_apikey";

就文件系统而言,每个用户都有一个与用户名同名的文件夹,都位于同一目录中。此用户的文件夹可能已经存在,也可能不存在。当用户与服务器建立 SFTP 连接时,经过身份验证后,应该只向他们显示该文件夹的内容。

希望有人知道这个问题的简单解决方案。我唯一的限制是它必须在 CentOS 机器上运行,但我对任何工具和语言都持开放态度。

答案1

您可以将 PAM 和名称服务交换机 (NSS) 的后端替换为 MySQL 后端。您将需要pam-mysqllibnss-mysql

仅仅让一个应用程序使用 MySQL 可能有点小题大做,但我认为我应该提一下。

相关内容