用MySQL后端pipe理SSH用户

有没有可能使用(mysql)数据库来pipe理SSHlogin凭证而不是/ etc / passwd?

我知道我可以使用ldap,但我只想简单的用户pipe理和ldap似乎有点压倒一切这个工作。

是。 Linux身份validation基于可插拔身份validation模块(PAM),它允许从一个身份validation后端轻松切换到另一个身份validation模块。 只需安装并configuration一个PAM MySQL模块,并在MySQL中有相应的用户数据库。

预编译的软件包可以在RHEL / CentOS的EPEL存档中作为pam_mysql并且应该在Debian / Ubuntu中提供pam-mysql软件包。

尽pipePAM-MySQL可以pipe理login凭证,但是这是一个不完整的解决scheme,因为它只处理authentication部分。 它不会在系统上创build用户帐户。 例如:

  • ls -l不会使用PAM-MySQL将UIDparsing为用户名。
  • 用户的主目录不存储在MySQL中。

换句话说,PAM-MySQL是/etc/shadow的替代品,而不是/etc/passwd 。 您将需要为每个用户创build一个/etc/passwd条目一个MySQL条目,或者使用NSS MySQL来补充PAM- MySQL 。

LDAP确实是更好的工具,因为您可以将用户帐户信息集中在一个地方。 我不相信这是被压倒的。 而是一种专门用于pipe理用户帐户的数据库,所以最好的做法是只使用LDAP作为标准解决scheme,而不是将非标准系统与MySQL集成在一起。 OpenLDAP或389 Directory Server将是比MySQL更合适的用户数据库。 (如果你坚持的话,它们都可以被configuration为使用SQL后端。)