Я пытаюсь найти решение, которое позволит пользователю подключаться к серверу через SFTP, используя предоставленную комбинацию имени пользователя и клавиш (хранящуюся в базе данных MySQL установки Wordpress), без необходимости постоянно синхронизировать две или более отдельные системы. .
Я задал этот вопрос в 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, но я открыт для любых инструментов и языков.
Вы можете заменить серверные части PAM и коммутатора службы имен (NSS) на серверную часть MySQL. Тебе понадобится pam-mysql и libnss-mysql.
Возможно, будет лишним просто заставить одно приложение использовать MySQL, но решил, что стоит упомянуть об этом.