我正在设置自动备份表里不一,但有些事情我不明白。我已经导入了自己的 GPG 公钥,但 duplicity 似乎也需要私钥。据我所知,公钥用于加密数据,私钥用于解密数据。因此,我看不出这里为什么需要私钥。
请赐教:)
答案1
我不知道什么是二重性,但可能需要签署备份。
答案2
除非您指定选项,否则 Duplicity 不会对档案进行签名--sign-key key-id
。在非签名模式(仅执行加密)下,私钥仅在实际解密/恢复时才需要,例如存档读操作,这需要将档案与本地缓存重新同步(=解密档案)。
在过去的几年里,这个功能发生了很大变化。但我可以说,我们正在大量自动化,而不需要私钥。我们过去犯的最大错误是目录规范不一致,看:
- 特定的缓存名称
target_url
,例如file:///usr/local/backup
是该字符串的哈希值 - 我们意外地生成了一个略有不同的 URL,但目标相同,例如
file:///usr/local/backup/
(带有尾部斜杠)或file:///usr/local/./backup
用于读取操作(collection-status、list-current-files 等) - 当 URL 不同时,哈希值也会不同,并且此类缓存不存在(或处于不一致状态)
- 此操作必须创建新的缓存,因此需要私钥才能解密档案
答案3
有可能。但是您可以创建一个额外的签名密钥,以确保加密备份的私钥非常安全。
问题描述如下:“duplicity incr-私钥丢失”。
简而言之,如果备份机器上只有公钥,而没有私钥,则第二次增量备份将失败,并显示错误消息,如“缺少匹配的私钥”。这实际上是 Duplicity 中的一个错误,当系统未配置为使用英语时会发生这种情况 - 显然 Duplicity 会检查来自 GPG 的某些错误消息,但无法处理翻译的错误消息。
因此,还提到了一种可能的解决方法:将环境变量设置LANG
为en_US.UTF8
。实际上,将其设置为空值也是可行的。因此,在 Ubuntu 16.04 下,像这样启动 duplicity 解决了我的问题:
env LANG= duplicity ...