我一直在使用FreeBSD运行虚拟机DigitalOcean.com。
我用安全外壳 (SSH)从我的 Mac 远程进入虚拟机上的控制台会话。我使用了ssh-keygen
创建一对加密密钥。
我将公钥复制到 FreeBSD SSH 服务器进行部署。我通过 Digital Ocean 提供的后门网页进行部署,将公钥的文本内容粘贴到表单的文本字段中。
效果很好,默认情况下,我的新 FreeBSD VM 上的现有用户root
和用户均已登录。当我通过或用户帐户通过 ssh 连接时,freebsd
root
freebsd
系统提示我提供保护本地私钥的密码。
ssh [email protected]
…或者…
ssh [email protected]
然后我安装了Postgres数据库系统安装到此 FreeBSD 服务器上。作为用于构建和安装 Postgres 的脚本的一部分,将第三个用户帐户添加到 FreeBSD 计算机。按照惯例,新帐户名为postgres
。我使用该实用程序为该用户设置了密码passwd
。
当我以该用户身份连接到 FreeBSD 服务器时:
ssh [email protected]
…系统提示我输入该postgres
用户自己的密码。 我是不是提示输入保护我的本地私钥加密密钥的密码。
➥ 为什么在使用公钥/私钥 SSH 密钥登录时,用户的待遇与&postgres
不同?root
freebsd
仅供参考,我从未触碰过authorized_keys
远程 SSH 服务器(我的 FreeBSD VM)上的任何文件。
我的问题可能是公共 SSH 密钥不适用于同一服务器上的所有用户, 我不知道。
答案1
将您的公钥添加到 postgresql 用户授权密钥文件中。这不会像 root 和 freebsd 用户那样在实例的初始化阶段发生(云提供商使用脚本执行诸如将 ssh 密钥部署到一组预定义用户之类的操作)。这可以与 freebsd 公钥相同,也可以为此目的使用不同的密钥对。