我尝试使用以下命令解密文件:
gpg --batch --no-tty --yes --always-trust --primary-keyring /root/.gnupg/secring.gpg -o file.csv --passphrase -d file.csv.asc
它工作正常,但是当我在cron中运行它时,我收到以下错误消息:
gpg: expected public key but found secret key - must stop
如何让它在cron中运行?
答案 0 :(得分:0)
不要使用--homedir /root/.gnupg
指向密钥环,而是指向完整的GnuPG主目录。 --homedir
设置目录GnuPG正在搜索其中的所有其他文件。
--primary-keyring file
只能用于 public 密钥环,这对您无法解密。来自man gpg
:
--primary-keyring file
Designate file as the primary public keyring. This means that newly
imported keys (via --import or keyserver --recv-from) will go to this
keyring.
或者,您可以使用--secret-keyring file
:
--secret-keyring file
Same as --keyring but for the secret keyrings.
我不确定你是否还需要这个参数:如果你以root用户身份运行这个cron作业,$HOME
应该已经设置为/root
而GnuPG将找不到它的主文件夹进一步配置。如果您没有以root身份运行cron作业,请将密钥放在另一个位置(即用户的主目录);为其他用户提供对/root
的读取和可能的写访问权是一个潜在的安全问题。