无法解密文件:期望的公钥

时间:2014-11-13 17:24:41

标签: bash encryption cron gnupg

我尝试使用以下命令解密文件:

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中运行?

1 个答案:

答案 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的读取和可能的写访问权是一个潜在的安全问题。