来自 postgres 数据库的 sshd 中的虚拟用户

来自 postgres 数据库的 sshd 中的虚拟用户

我有一个充满用户帐户的 Postgresql 数据库,我想允许这些用户通过 ssh 访问服务器,仅使用公钥认证。

到目前为止,我已经在 Ubuntu 服务器上设置了以下部分:

  1. libnss-pgsql2将 NSS 连接到多个数据库视图,以 Unix 兼容格式列出我的用户
  2. libpam-pgsql允许使用这些相同的视图进行 PAM 身份验证
  3. sshdAuthorizedKeysCommand 使用脚本通过用户的公钥(仍然来自 postgresql 数据库)对用户进行身份验证。

有没有更简单解决这个问题的方法是什么?我无法正确设置 nss 配置(缺少文档和日志)。

感谢您的时间和帮助。

答案1

您可以使用 ssh 隧道允许用户连接到您的数据库。例如

ssh -L 本地端口:IP 地址/主机名:服务器端口用户@IP 地址/主机名。

这里的用户将是操作系统用户,因此最好提供 postgres 超级用户来连接。

但请记住,postgresql数据库服务器必须在该服务器上。

完成后,您可以使用简单的 psql 命令进行连接

psql -h 主机名/IP 地址 -p 端口 -U 用户 -d 数据库

答案2

我会将您的用户从 DB 转储到 LDAP 并将其加载到本地 LDAP。您可以轻松地自动更新。这将使您的操作系统能够从 LDAP 查询用户,并且它将更具可移植性 - 如果您想从 Linux 移出,libnss-pgsql2 并不存在于每个类 UNIX 系统上。你永远不知道 ;)

相关内容