自动化 PGP 解密

Automating PGP Decryption

我将通过 sFTP 从客户那里接收 PGP 加密文件 - 我已经有一个自动提取文件的流程。收到加密文件后,我想自动解密。

我使用 GoAnywhere OpenPGP Studio 创建了一个密钥对(public 密钥将交给客户)。我想在批处理文件脚本中使用私钥和秘密密码,该脚本将 运行 作为 Windows 任务计划程序中的计划任务。这是我的脚本:

gpg --keyring "C:\UserFolder\.openpgpstudio\keys\pubring.pkr" --secret-keyring "C:\UserFolder\.openpgpstudio\keys\secring.skr" --batch --yes --passphrase-fd "secretPassPhrase" -o "D:\FilePath\testPGP.txt" -d "D:\FilePath\testPGP.txt.pgp"
exit

当我尝试 运行 我的脚本时,仍然需要一些手动步骤来解密文件 - 我遇到了几个问题:

  1. 执行批处理文件时,命令提示符 window 打开,其中包含我在批处理文件中的相同脚本。要进行解密并输出文本文件,我必须按 Enter。这不是自动的,会导致计划任务卡住。
  2. 即使我使用 --passphrase-fd 选项,有时仍会提示我输入密码 - 此密码弹出窗口还会导致计划任务卡住 运行ning。

有没有办法绕过这两个手动步骤,使我的脚本完全自动化?

跟进问题:-d 选项是否接受通配符,这样我就可以解密任何找到的扩展名为 .pgp 的文件,我是否可以使用 -o 选项来输出与 .pgp 文件同名的 .txt 文件?

  1. --passphrase-fd 选项应与文件描述符(即数字 3、4、5 等)一起使用,而不是密码字符串。您应该使用 --passphrase 选项,添加 --pinentry-mode=loopback。目前最有可能有效,因为密码是通过弹出窗口询问并缓存的。

  2. -d 使用通配符不起作用,但是您可以使用简单的脚本遍历所有具有 pgp 扩展名的文件