为什么 SSH 密钥对用户“root”和“freebsd”有效,但对“postgres”(数据库所有者)无效?

为什么 SSH 密钥对用户“root”和“freebsd”有效,但对“postgres”(数据库所有者)无效?

我一直在使用FreeBSD运行虚拟机DigitalOcean.com

我用安全外壳 (SSH)从我的 Mac 远程进入虚拟机上的控制台会话。我使用了ssh-keygen创建一对加密密钥。

我将公钥复制到 FreeBSD SSH 服务器进行部署。我通过 Digital Ocean 提供的后门网页进行部署,将公钥的文本内容粘贴到表单的文本字段中。

效果很好,默认情况下,我的新 FreeBSD VM 上的现有用户root和用户均已登录。当我通过或用户帐户通过 ssh 连接时,freebsdrootfreebsd系统提示我提供保护本地私钥的密码

ssh [email protected]

…或者…

ssh [email protected]

然后我安装了Postgres数据库系统安装到此 FreeBSD 服务器上。作为用于构建和安装 Postgres 的脚本的一部分,将第三个用户帐户添加到 FreeBSD 计算机。按照惯例,新帐户名为postgres。我使用该实用程序为该用户设置了密码passwd

当我以该用户身份连接到 FreeBSD 服务器时:

ssh [email protected]

系统提示我输入该postgres用户自己的密码。 我是不是提示输入保护我的本地私钥加密密钥的密码。

➥ 为什么在使用公钥/私钥 SSH 密钥登录时,用户的待遇与&postgres不同?rootfreebsd

仅供参考,我从未触碰过authorized_keys远程 SSH 服务器(我的 FreeBSD VM)上的任何文件。

我的问题可能是公共 SSH 密钥不适用于同一服务器上的所有用户, 我不知道。

答案1

将您的公钥添加到 postgresql 用户授权密钥文件中。这不会像 root 和 freebsd 用户那样在实例的初始化阶段发生(云提供商使用脚本执行诸如将 ssh 密钥部署到一组预定义用户之类的操作)。这可以与 freebsd 公钥相同,也可以为此目的使用不同的密钥对。

相关内容