Назад | Перейти на главную страницу

Как связать аутентификацию пользователя OSX SSH с пользовательской базой данных mysql?

У нас есть клиентская интрасеть с учетными данными клиента, хранящимися в базе данных mysql.

Сейчас мы пытаемся включить SSH-доступ к одному из наших серверов для каждого клиента, где аутентификация будет происходить из нашей существующей базы данных.

Любая помощь была бы потрясающей.

Похоже, что OS X использует PAM. В этом случае вы должны уметь пользоваться PAM-MySQL для выполнения любого типа аутентификации, который вы хотите. OS X из коробки использует довольно простую конфигурацию PAM для sshd:

$ cat /etc/pam.d/sshd
# sshd: auth account password session
auth       required       pam_nologin.so
auth       optional       pam_afpmount.so
auth       sufficient     pam_securityserver.so
auth       sufficient     pam_unix.so
auth       required       pam_deny.so
account    required       pam_securityserver.so
password   required       pam_deny.so
session    required       pam_launchd.so
session    optional       pam_afpmount.so

Я раньше не настраивал PAM-MySQL, но, если предположить, что он похож на другие модули PAM внешней базы данных, будет файл конфигурации, который вы используете для выбора учетных данных db, какие таблицы следует использовать и т. Д. Затем вы должны вставить auth sufficient pam_mysql.so прямо перед pam_unix.so линия в /etc/pam.d/sshd.

Теоретически это должно быть все, что вам нужно.

Вероятно, есть несколько способов сделать это:

  1. Настройте мастер Open Directory, привяжите к нему свой сервер (или, может быть, этот сервер будет мастером OD) и напишите несколько хуков для вашей клиентской интрасети, которые добавляют / удаляют / обновляют пользователей в OD всякий раз, когда есть изменения
  2. Напишите подключаемый модуль служб каталогов, который установлен на вашем сервере, который будет взаимодействовать с вашей базой данных MySQL.

Для 1-го варианта см. Apple Документация по Mac OS X Server, особенно относящиеся к Open Directory. Eсть dscl команда, которая может быть запущена из скриптов для добавления / удаления / обновления записей в Open Directory.

Чтобы узнать о параметрах службы каталогов, см. Apple Документация по службам каталогов, особенно в Написание подключаемых модулей Open Directory документ.

Вероятно, есть и другие способы, но это два, которые пришли в голову.