为什么 GPG 加密/解密在不同版本的 GnuPG 之间会失败?

为什么 GPG 加密/解密在不同版本的 GnuPG 之间会失败?

我有 2 台服务器,它们之间会传递数据,一台是 Ubuntu,另一台是 Red Hat。使用每台服务器上已安装的版本,Ubuntu 是 12.04 和 gnuPG 1.4.x,Red Hat 是 Enterprise 6.1 和 gnuPG 2.0.x,我无法从 Ubuntu 解密到 Red Hat。

我将使用 PHP 在 Ubuntu 服务器上使用 gnuPG 扩展进行加密/解密。Red Hat 服务器将通过 CGI 脚本中的 shell 访问 gnuPG。

我在 Red Hat 上创建了公钥/私钥,导出了公钥。将其导入 Ubuntu 并签名。然后我在 Ubuntu 上加密了一个文件,将其复制到 Red Hat 服务器并尝试解密。

我收到了这个回复

gpg -d tocyn.gpg
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: Unknown system error

我不知道该怎么处理这个问题,因为我找不到太多关于这个响应的含义的信息。难道不能在两个不同的版本之间做到这一点吗?我可能误解了,但我认为它们实际上是相同的。

答案1

GnuPG 2.0.x 和 1.4.x 的最新版本完全兼容。这应该不是问题,请验证数据是否已正确传输(例如使用校验和)。

无论如何:像 Ubuntu 这样的 Debian 衍生产品都安装了 GnuPG 1 和 2,其中gpgGnuPG 1.4.x 和gpg2GnuPG 2.0.x。

来自 GnuPG 2 的手册页:

gpg2 是 GNU 隐私保护 (GnuPG/MacGPG2) 的 OpenPGP 部分。它是一种使用 OpenPGP 标准提供数字加密和签名服务的工具。gpg2 具有完整的密钥管理以及您从一个体面的 OpenPGP 实现中可以期待的所有功能。

gpg与更适合服务器和嵌入式平台的独立版本相比,此版本通常以名称安装gpg2,并且更适合桌面,因为它需要安装其他几个模块。独立版本将保持维护,并且可以在同一系统上安装两个版本。如果您需要使用不同的配置文件,则应使用类似gpg.conf-2' instead of justgpg.conf 的文件。

相关内容