У нас есть клиентская интрасеть с учетными данными клиента, хранящимися в базе данных 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-го варианта см. Apple Документация по Mac OS X Server, особенно относящиеся к Open Directory. Eсть dscl
команда, которая может быть запущена из скриптов для добавления / удаления / обновления записей в Open Directory.
Чтобы узнать о параметрах службы каталогов, см. Apple Документация по службам каталогов, особенно в Написание подключаемых модулей Open Directory документ.
Вероятно, есть и другие способы, но это два, которые пришли в голову.