我如何告诉 Mutt 请求 gpg 密码?

我如何告诉 Mutt 请求 gpg 密码?

在使用 Thunderbird 多年并被 gpg 难住之后,我正在慢慢迁移到 mutt。默认情况下,我有 Mutt 签名消息,但系统没有要求我输入密码,然后消息失败:

gpg: can't query passphrase in batch mode
gpg: skipped "53453F2E": bad passphrase
gpg: signing failed: bad passphrase
Press any key to continue...

如果 Mutt 需要密码来签署消息,我该如何让 Mutt 要求我提供密码?

答案1

你的配置是什么?我很久以前使用过一个教程(抱歉,我现在看不到)来获得此配置:

# $Id: .gpg-muttrc,v 1.1 2004/01/08 00:22:40 tom Exp $
# mutt commands for GPG
set pgp_sign_as=0xF7E48EDB
set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to $pgp_sign_as -- -r %r -- %f"
set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to $pgp_sign_as -- -r %r -- %f"
set pgp_import_command="gpg --no-verbose --import -v %f"
set pgp_export_command="gpg --no-verbose --export --armor %r"
set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r" 
set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r" 
set pgp_autosign=yes
set pgp_replyencrypt=yes
set pgp_timeout=1800
set pgp_good_sign="^gpg: Good signature from"

鉴于症状,我会去检查一下pgp_sign_command。但检查您的配置是否与您使用的是gpg或一致gpg2

进一步阅读

答案2

删除后--batch--passphrase-fd 0每次签名/加密时它都会要求您输入密码。

答案3

这可能是 mutt 1.5.24 中的一个问题;我刚刚从 1.5.23 迁移并开始遇到这个问题。从 gpg.rc 中删除 --batch 和 --passphrase-fd 0 的建议为我解决了这个问题。

相关内容