为什么 pgp 在我使用 --passphrase-fd 后第一次询问密码

why pgp ask passphrase at the first time after I use --passphrase-fd

请看我的批处理文件:

cd C:\Program Files (x86)\Gpg4win\bin
echo "my passphrase"|gpg  --always-trust --recipient abc@def.com --batch  --passphrase-fd 0  --output D:\pgptest\a.txt --decrypt "d:\pgptest\b.txt"

它一直要求我输入密码,即使我将它添加到批处理文件中。输入密码后,它运行良好,但我希望我的批处理文件 运行 静默 mode.Please 帮助我。

C:\Program Files (x86)\Gpg4win\bin>gpg --version

gpg (GnuPG) 2.2.4
libgcrypt 1.8.2
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: C:/Users/xxx/AppData/Roaming/gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

简答: 添加“--pinentry-mode环回”到你的命令行

如前所述: https://wiki.gnupg.org/TroubleShooting#Passphrase_on_the_command_line

如果您无论如何都将密码短语放在批处理文件中,那么在您的密钥上设置密码短语通常根本没有多大意义。 (使用 gpg --passwd 删除它。)如果你想在命令行上提供它,你必须添加 pinentry-mode 参数。

顺便说一句。 "--always-trust --recipient abc@def.com" 参数未使用/与 --decrypt 一起没有意义。