如何将 OSX SSH 用户身份验证与自定义“用户”mysql 数据库绑定?

如何将 OSX SSH 用户身份验证与自定义“用户”mysql 数据库绑定?

我们有一个客户端内联网,其中客户端用户凭据存储在 mysql 数据库中。

我们现在正尝试为每个客户端启用对我们其中一台服务器的 SSH 访问 - 其中身份验证将来自我们现有的数据库。

任何帮助都是极好的。

答案1

OS X 确实看起来使用了 PAM。在这种情况下,你应该能够使用PAM-MySQL执行您想要的任何类型的身份验证。开箱即用的 OS X 使用非常简单的 sshd PAM 配置:

$ cat /etc/pam.d/sshd
# sshd:验证账户密码会话
需要身份验证 pam_nologin.so
auth 可选 pam_afpmount.so
身份验证充分 pam_securityserver.so
身份验证充分 pam_unix.so
身份验证需要 pam_deny.so
帐户需要 pam_securityserver.so
需要密码 pam_deny.so
会话需要 pam_launchd.so
会话可选 pam_afpmount.so

我之前没有设置过 PAM-MySQL,但假设它与其他外部数据库 PAM 模块类似,那么将有一个配置文件可用于选择数据库凭据、应使用哪些表等。然后,您将在 中的行auth sufficient pam_mysql.so前插入。pam_unix.so/etc/pam.d/sshd

从理论上来说,这就是你所需要的全部。

答案2

可能有几种方法可以做到这一点:

  1. 设置一个 Open Directory 主服务器,将你的服务器绑定到它(或者该服务器可能是 OD 主服务器),并为你的客户内联网编写一些钩子,以便在 OD 发生变化时添加/远程/更新用户
  2. 编写一个目录服务插件,安装在你的服务器上,与你的 MySQL 数据库进行通信

对于第一个选项,请参阅 Apple 的Mac OS X 服务器文档,尤其是与 Open Directory 相关的。有一个dscl命令可以从脚本运行,以在 Open Directory 中添加/删除/更新条目。

有关目录服务选项,请参阅 Apple 的目录服务文档,尤其是 编写开放目录插件文档。

可能还有其他方法,但我首先想到的是这两种方法。

相关内容