场景如下,我们使用 GnuPG 加密 2 个 Web 服务器之间的数据。1 在 RHEL 上。GnuPG会通过cgi脚本访问进行加密和解密。所以我需要一个 apache 用户可以访问的密钥环。事实证明,这对我来说在 Red Hat 上很困难,但我在 Ubuntu 上很容易完成这个设置。这是我尝试过的,也许有人有更好/更简单的方法来实现这一点。
我成为了apache用户
su -s /bin/bash apache
Run Code Online (Sandbox Code Playgroud)
跑步时
gpg --gen-key
Run Code Online (Sandbox Code Playgroud)
它无法在 /var/www 处创建 .gnupg 目录,因此我创建了该目录并将所有者设置为 apache.apache。现在生成密钥时,我得到
can't connect to `/var/www/.gnupg/S.gpg-agent': No such file or directory
gpg-agent[26949]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: Key generation canceled.
Run Code Online (Sandbox Code Playgroud)
所以我在阅读了一些手册页(以及一些谷歌搜索)后创建了该文件
mknod -m 700 S.gpg-agent p
Run Code Online (Sandbox Code Playgroud)
现在我明白了
can't connect to `/var/www/.gnupg/S.gpg-agent': Connection refused
gpg-agent[26949]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: Key generation …
Run Code Online (Sandbox Code Playgroud)