如何配置 gpg2 在控制台上而不是在彈出視窗中詢問密碼?

如何配置 gpg2 在控制台上而不是在彈出視窗中詢問密碼?

我正在嘗試將 Gpg4win 配置為不使用彈出視窗來詢問密碼。我僅有的從命令提示字元使用 gpg2,這表示彈出視窗既煩人又具有破壞性,因為它會將焦點從命令提示字元移開,並且之後不會將其傳回。

這是在 Windows 10 上。

我嘗試使用以下內容編輯 gpg-agent.conf 檔案:

pinentry-program C:\...path-to\pinentry.exe

希望沒有 -w32 或類似結尾的 pinentry.exe 能夠在控制台上使用,但當嘗試簽署測試檔案時,它只會在那裡停留幾秒鐘,然後輸出:

$ gpg2 --sign test.md
gpg: problem with the agent: No pinentry
gpg: no default secret key: Operation cancelled
gpg: signing failed: Operation cancelled

我嘗試在路徑和正斜線周圍添加引號,因此我嘗試了以下所有操作:

pinentry-program 'C:\...path-to\pinentry.exe'
pinentry-program C:/...path-to/pinentry.exe
pinentry-program file://C:/...path-to/pinentry.exe

在我的 gpg.conf 檔案中,設定 use-agent 已被註解掉,因為我在各個網站上找到了相關提示,但我懷疑這是 gpg (1) 的舊設置,而不是 gpg2 的舊設定。

我嘗試將 no-use-agent 添加到 gpg.conf 中,並得到以下結果:

gpg: C:/.../gpg.conf:202: obsolete option "--no-use-agent" - it has no effect

那麼這有可能嗎?

基本上我想要的是這個指令:

gpg2 --sign test.md

在繼續之前,應在同一命令提示字元視窗中提示輸入我的密碼。

答案1

我使用的是Gpg4win v3.1.15,它似乎使用appdata目錄作為預設主目錄。如果您的主目錄不同,則 gpg.conf 必須儲存在其中。

如果文件不存在,則建立文件並%appdata%\gnupg\gpg.conf包含以下內容:

pinentry-mode loopback

如果啟用它,您會收到命令列提示符。

此外,相同的設定允許您將 pin 作為命令列選項密碼傳遞,例如gpg --passphrase 12345 --decrypt,這當然是不安全的,具體取決於您的使用情況。如果您正在做程式設計工作,那麼它可能比輸入標準輸入更方便。

相關內容