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

我有一个Postgresql数据库充满了用户帐户,我想让这些用户通过ssh访问一个服务器,只使用公钥authentication。

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

  1. libnss-pgsql2将NSS连接到几个数据库视图,以Unix兼容格式列出我的用户
  2. libpam-pgsql允许使用这些相同的视图进行PAMauthentication
  3. sshd AuthorizedKeysCommand用一个脚本来validation用户的公钥(仍然来自postgresql数据库)。

有没有更简单的方法来解决这个问题? 我有问题正确设置nssconfiguration(缺less文档和日志)。

感谢您的时间和帮助。

你可以使用SSH隧道来允许用户连接到你的数据库。 如

ssh -L local_port:IP地址/主机名:server_port user @ IP地址/主机名。

这里用户将是OS用户,所以最好提供postgres超级用户来连接。

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

一旦完成,你可以使用简单的psql命令来连接

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