GnuPG 1 和 GnuPG 2 是否相互兼容?

qaz*_*wsx 101 gnupg

使用 Macports,我意识到有端口gnupg和更新的gnupg2. 我想使用 GnuPG 来加密文件。我应该两者都安装,还是只安装一个就足够了?如果我同时安装,两者是否兼容?我首先安装哪个重要吗?

Jen*_*rat 107

GnuPG 1

GnuPG 1.4(“经典”)将继续用于嵌入式和服务器用途,因为它带来更少的依赖和更小的二进制文件。早些时候,它经常被安装为gpg,今天它更常被命名gpg1(取决于发行版)。

从 GnuPG 1.4 手册页:

这是gpg. 对于桌面使用,您应该考虑使用gpg2GnuPG-2 包(在某些平台gpg2上安装在名称下gpg

GnuPG 2

GnuPG 2.0 是 GnuPG 的重新设计版本——但变化主要发生在内部层面。较新的版本被拆分为多个模块,例如还有用于 X.509 的模块(由 S/MIME 使用)。

来自man gpg2

与更适合服务器和嵌入式平台的独立版本 gpg 相比,此版本通常以名称安装,gpg2并且更针对桌面,因为它需要安装其他几个模块。

GnuPG 2.1

GnuPG 2.1 带来了一个重要的变化,它将以前分离的公钥和私钥(pubring.gpgvs. secring.gpg)合并到公钥中。这已以保持兼容的方式实现,因此当 GnuPG 2.1 集成私钥环时,您仍然可以使用 GnuPG 1,但对私钥的更改不会显示为相应的其他实现。从变更日志

[...] 允许旧版 GnuPG 与 GnuPG 2.1 共存。但是,使用新 gpg 对私钥的任何更改在使用 2.1 之前的 GnuPG 版本时都不会显示,反之亦然。


直接回答你的问题:

我应该两者都安装,还是只安装一个就足够了?我首先安装哪个重要吗?

只安装两个。反正他们不干涉。gpg为访问它的其他应用程序(如包管理器、邮件客户端等)安装(如果没有安装),并gpg2在命令行上“直接使用”。

如果我同时安装,两者是否兼容?

两者都实现了 OpenPGP 协议,因此它们在共享数据方面彼此兼容。此外,它们(大部分)使用相同的命令和选项,因此大多数时候您可以在它们之间任意切换。

GnuPG 2.1 对私有密钥环的更改对 GnuPG 2.1 之前的实现不可见(参见上文 GnuPG 2.1 部分)。

  • 这个答案可能有点过时了。在 Ubuntu 18.04 仿生上,`gpgv1` 包被描述为“弃用的“经典”版本”,而 `gpgv2` 被描述为“虚拟过渡包”。安装普通的 `gpg` 包提供 gpg 版本 2.2.4。因此,gpgv1 似乎正在消失,而 gpgv2(简称为“gpg”)是新标准。 (15认同)
  • 这正是我描述的 GnuPG 2 和 2.1 之间的重要区别:GnuPG 2.1 将私钥存储在另一个文件中。您的私钥存储在 GnuPG 1.4 的 `secring.gpg` 中,GnuPG 2.1 不会查询它。通过 `gpg --export-secret-keys [key-id] | 将它们复制到 GnuPG 2.1 | gpg2 --import`。 (7认同)
  • gpg2 实际上自动为我导入了 gpg 密钥(cygwin) (2认同)