在WordPress MySQL数据库中使用凭证进行SFTP身份validation?

我试图find一个解决scheme,将允许用户通过SFTP使用提供的用户名/键组合(存储在Wordpress安装的MySQL数据库)连接到服务器,而不需要不断地保持两个或多个单独的系统同步。

我在Stackoverflow上问过这个问题,但是我觉得在这里可以更好的回答。

这是MySQL查询获取两列的用户名和api密钥,用户将input到他们的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连接时,只应validation一次才显示该文件夹的内容。

希望有人知道这个问题的简单解决scheme。 我唯一的限制是它必须运行在一个CentOS盒子上,但是我对任何工具和语言都很开放。

您可以用MySQL后端replacePAM的后端和名称服务交换机(NSS)。 您将需要pam-mysql和libnss-mysql 。

可能是矫枉过正只是为了让一个应用程序使用MySQL,但我想我应该提到它。