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

Bas*_*die 6 postgresql ssh pam nss

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

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

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

有没有更简单的方法来解决这个问题?我在正确设置 nss 配置时遇到问题(缺乏文档和日志)。

感谢您的时间和帮助。

小智 0

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

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

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

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

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

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