gpg:无人值守/自动密钥生成

gpg:无人值守/自动密钥生成

选项--batch仅限gpg于生成具有单个子密钥的密钥。对于任何更复杂的事情,我尝试使用--command-fd--status-fd。我面临的问题是我无法找到绕过要求我输入密码的弹出窗口的方法。这是一个简单的测试用例:

#!/bin/bash

gpg2 --homedir ./gpg-test --passphrase "apassword" --status-fd 1 --expert --full-gen-key --command-file <(cat <<-EOF 
        8
        S
        Q
        1024
        0
        My Name
        [email protected]
        mycomment
        EOF
)

尽管进行了--passphrase切换,但当脚本到达 之前的位置时EOF,不会识别切换,而是弹出一个窗口。我尝试在 之前添加密码EOF,但失败了。当我尝试 (页面 (gpg2 v.2.1.11)--pinentry-mode loopback中记录的 )时man,我收到错误:

gpg: setting pinentry mode 'loopback' failed: Not supported
[GNUPG:] ERROR set_pinentry_mode 67108924
gpg: agent_genkey failed: Not supported
Key generation failed: Not supported

答案1

我将保留这个问题,因为可能还有其他人有类似的困惑。事实证明,我尝试的方法在 v.2.2.4 中有效。因此,尽管有文档说明,但它在 2.1.11 中不受支持。

除此之外,截至 2020 年,进行无人值守密钥生成的正确且最简单的方法是使用--quick-generate-key 和 --quick-add-key。我尝试使用的方法(使用--command-fd/ --status-fd)仅适用于更复杂的任务。例如,钥匙上有很多种签名并且--quick-sign-key只提供最简单的。对于更复杂的情况,--edit-key可能需要,在这种情况下,我的上述方法是合适的。

相关内容