我试图在本地加密文件,但收到错误。[email protected]
是我的电子邮件地址的占位符,我的密钥环和密钥服务器上都存在一个公钥。我的私钥位于硬件密钥 (Yubikey) 上。我可以毫无问题地解密以前加密的文件。这是错误:
➜ ~ gpg -e -r [email protected] somefile.txt
gpg: error retrieving '[email protected]' via WKD: General error
gpg: [email protected]: skipped: General error
gpg: somefile.txt encryption failed: General error
这个错误是什么意思以及如何解决它?
PS 只有一件事可能相关。我的公钥已过期。
答案1
延长密钥到期日期解决了问题。该错误消息具有误导性。然而,按照 Jens Erat 建议添加-vv
会产生一些有用的错误消息,例如gpg: Note: signature key ... expired
和gpg: ... skipped: Unusable public key
,这有助于找到实际的错误。
答案2
我在使用时收到类似的错误StackExchange/Blackbox (GitHub),它是 GPG 的包装器,用于加密源代码管理中的文件。由于这是我在从 Google 搜索该错误时可以找到的唯一相关内容,因此我为后代添加了这个答案。而不是General error
这个说Connection timed out
,但在其他方面是相同的:
gpg: error retrieving '[email protected]' via WKD:
Connection timed out
gpg: [email protected]: skipped: Connection timed out
gpg: somefile.txt: encryption failed: Connection timed out
本例中的问题是,当灌输新用户使用该blackbox_addadmin
命令,用户提交了对.blackbox/blackbox-admins.txt
文件的更新,但没有提交其pubring.kbx
文件。
解决方案是用户提交并推送未提交的.kbx
文件
set -x
我通过向 Blackbox 脚本添加 Bash 语句来查看gpg
实际执行的命令,然后添加-vv
@mehdix 的答案中描述的选项来找到此解决方案
答案3
我有同样的错误,但情况略有不同(在 Windows 上:P)。
我有一个带有 EXEC 任务的 SSIS 包,其中包含要执行的命令gpg.exe
。一切都工作正常cmd.exe
。但是,当我尝试在 SQL Server 作业中运行带有此包的作业时,出现了上述错误。
解决方案是以db_agent
用户身份运行 GPA 程序,然后我看到该用户没有相关的公钥。因此,为另一个用户添加密钥很有帮助。
答案4
[email protected]
我通过生成使用命令的 公钥解决了这个问题gpg --full-generate-key
您可以阅读有关生成 gpg 密钥的更多信息这里-->https://mikeward.net/passwords/pass-a-ridiculously-great-password-manager-intro/