我正在尝试将(PHP)软件模块迁移到新服务器(从 CentOS 6.9 到 Ubuntu 16.04)。在进程的某个部分,代码尝试启动以下命令:
gpg --no-tty --sign --encrypt --armor --passphrase=whatever --local-user A188E1E4! --recipient A188E1E4
所以我试图从工作服务器导出私钥/公钥对。
我被困在这一点上,我尝试用这个非常相似的问题但我不知道密钥应该在哪里的名称和路径。
我尝试过跑步gpg --list-keys
但是:
gpg:已创建目录“/home/my-username/.gnupg”
gpg:已创建新配置文件 /home/my-username/.gnupg/gpg.conf'
gpg:警告:“/home/my-username/.gnupg/gpg.conf”中的选项在此运行期间尚未激活
gpg:已创建密钥环“/home/my-usernameo/.gnupg/pubring.gpg”
gpg:/home/my-username/.gnupg/trustdb.gpg:已创建 trustdb
我不知道哪个用户是用于启动命令的代码。也许我需要一种方法来列出所有密钥,而不仅仅是当前用户,这样我就可以看到需要导出哪个密钥。
答案1
gpg
将尝试从中加载密钥~/.gnupg
,并且不会列出“系统中的所有密钥”,因为每个用户都有一个单独的密钥环。你不可以做这个。
在您的情况下,gpg
应用程序将尝试列出来自 的密钥www-data
,php
或者拥有该进程的用户的名称是什么php
。
GNUPGHOME
您可以通过操作或HOME
环境变量,或将 设为 来 --homedir
更改 按键的位置gpg
。此选项并非在所有gpg
版本中都可用。