【问题标题】:Automating PGP Decryption自动化 PGP 解密
【发布时间】:2021-11-06 09:55:49
【问题描述】:

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

我使用 GoAnywhere OpenPGP Studio 创建了一个密钥对(公钥将交给客户)。我想在批处理文件脚本中使用私钥和密码短语,该脚本将作为 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. 执行批处理文件时,会打开一个命令提示符窗口,其中包含与批处理文件中相同的脚本。要进行解密并输出文本文件,我必须按 Enter。这不是自动的,会导致计划任务卡住。
  2. 即使我使用 --passphrase-fd 选项,有时仍会提示我输入密码 - 此密码弹出窗口还会导致计划任务卡在运行。

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

后续问题:-d 选项是否接受通配符,以便我可以解密任何找到的带有 .pgp 扩展名的文件,我是否能够使用 -o 选项输出一个 .txt 文件与 .pgp 文件同名?

【问题讨论】:

    标签: gnupg openpgp


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

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

    【讨论】:

    • 感谢您的回答,我会试试看。您知道如何解决我的第一个问题,即每次运行批处理文件时都必须按 Enter 键吗?不确定这是否与 gnupg 或一般 Windows 批处理脚本问题有关。
    • 请忽略我的最后一条评论,这正在按我的意愿工作。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2019-02-12
    • 2011-11-20
    • 1970-01-01
    • 2021-11-04
    • 2012-06-21
    • 2013-10-10
    相关资源
    最近更新 更多