GPG 遇到问题,将一组子密钥与另一组隔离。
简而言之,我生成了一个主密钥,然后是三个子密钥:
- 签约
- 加密
- 授权
我似乎无法将签名和加密私钥与授权密钥隔离开来。我都试过了:
- 仅导出/导入特定的私有子密钥
- 删除一个不需要的私有子密钥
当我导入一个子密钥时,gpg 不允许我导入其他子密钥,说我已经导入了一个属于主密钥的私钥。当我删除一个不需要的私有子键时,所有子键都被删除。似乎没有解决方案有效。
是什么赋予了?
GPG 遇到问题,将一组子密钥与另一组隔离。
简而言之,我生成了一个主密钥,然后是三个子密钥:
我似乎无法将签名和加密私钥与授权密钥隔离开来。我都试过了:
当我导入一个子密钥时,gpg 不允许我导入其他子密钥,说我已经导入了一个属于主密钥的私钥。当我删除一个不需要的私有子键时,所有子键都被删除。似乎没有解决方案有效。
是什么赋予了?
您可能正在处理两个问题:
例如,选择要导出的显式子键需要!在键 ID 后加上(给定0xdeadbeef的是您的子键 ID)
gpg --export-secret-subkeys 0xdeadbeef!
您的问题的可能解决方案是:
一次全部导出所需的子密钥(假设您有一个已经包含所有子密钥的密钥环,如果这些子密钥分布在多个密钥环中则不起作用,因为它需要合并密钥),例如
gpg --export-secret-subkeys 0xdeadbeef! 0x12345678!
使用该gpgsplit命令将 OpenPGP 消息拆分为单个数据包,然后使用cat. 这是一项相当困难的任务,需要对 OpenPGP 标准有更深入的了解,我会选择前两种解决方案中的任何一种。
gpgsplit 工具当然是一种解决方案,但除了专家之外,其他人都非常困惑。我的解决方案是首先将私有主密钥导出到文件中,然后导出子密钥,并删除所有密钥,然后仅导入秘密子密钥。
所以:
# Export out the master key
gpg --export-secret-keys user@host > master_secret.asc
# Export out the subkeys
gpg --export-secret-subkeys > subkeys_secret.asc
# Delete both sets of secret keys (You can also delete everything associated with that uid)
gpg --delete-secret-keys user@host
# Import in ONLY the subkeys
gpg --import subkeys_secret.asc
只是一个评论:如果这个过程让我这个相当技术性的人感到困惑,想象一下对于一个完全非技术性的人来说这将是多么困难。这需要简化。此外,一旦您将密钥分开,就没有简单而明显的方法将主密钥和子密钥合并到同一个密钥环中。
这不是一个功能,它是一个错误,应该修复。