我使用以下命令使用 duplicity 创建了一个 GPG 加密备份。当我想恢复文件时,duplicity 会要求输入密码进行解密。知道为什么吗?我使用 YubiKey 5 存储我的 GPG 私钥,因此它不受密码保护,而且它要求输入密码解密不是 GPG 私钥的密码。
之前我也使用对称加密代替 GPG(PASSPHRASE 环境变量),但与此同时客户端的 ~/.cache/duplicity 目录和远程端的完整备份集都被删除了。
:/tmp$ duplicity restore --file-to-restore "/home/gabor/test.jpg" sftp://backupmachine//mnt/duplicity/ /tmp/teszt/test.jpg
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Sat Aug 27 14:02:43 2022
GnuPG passphrase for decryption:
备份的创建方式如下:
TARGET='sftp://backupmachine//mnt/duplicity/'
SSH_KEY="${BASE_DIR}/cloud.pem"
GPG_ENCRYPT_OPTS=--encrypt-key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
export DUP_OPT="--ssh-options -oIdentityFile=${SSH_KEY}"
duplicity $DUP_OPT $GPG_ENCRYPT_OPTS --full-if-older-than 3W --include-filelist "$(dirname $0)/gabor1-list.txt" --exclude '**' --exclude "$HOME/.cache/duplicity" / "${TARGET}"
这是我测试 .gpg 文件的方式,它们实际上是用 GPG 密钥加密的,而不是用密码进行对称加密:
:/tmp$ gpg -d duplicity-new-signatures.20220827T120243Z.to.20220828T010003Z.sigtar.gpg > x
gpg: encrypted with 4096-bit RSA key, ID xxxxxxxxxxxxxxxx, created 2022-05-27
"me <[email protected]>"
:/tmp$ file x
x: POSIX tar archive
答案1
duplicity 不知道您创建了一个无密码密钥。因此它会询问。只需按回车键提供一个空的密钥就足够了。
如果你想欺骗别人,不要要求提供
- 空的环境变量
PASSHPHRASE
(参见duplicity 手册页)例如
PASSHPHRASE=''
或者
- 设置选项
--use-agent
让 gpg 明确使用其代理来处理密码。
希望有所帮助,ede/duply.net