![GnuPG 的奇怪错误:当终端太小时声称“没有密钥”](https://linux22.com/image/188448/GnuPG%20%E7%9A%84%E5%A5%87%E6%80%AA%E9%94%99%E8%AF%AF%EF%BC%9A%E5%BD%93%E7%BB%88%E7%AB%AF%E5%A4%AA%E5%B0%8F%E6%97%B6%E5%A3%B0%E7%A7%B0%E2%80%9C%E6%B2%A1%E6%9C%89%E5%AF%86%E9%92%A5%E2%80%9D.png)
答案1
每当您报告(可疑的)错误时,您应该说明您观察到的行为以及您的预期。因此,在这种情况下,当您使用 GnuPG 打开错误报告时,您应该说明您认为应该发生的情况。如果您在此处添加它,您应该编辑问题,而不是仅在评论中添加它。另请参阅底部的建议。
是的,出现这种情况是因为窗口太小。它也不是源自 GnuPG:GnuPG 只是调用pinentry-program
您在配置中指定的。
有关发生的详细信息,我们可以尝试手动调用它。
$ stty cols 20 rows 10
$ pinentry-curses
OK Pleased to meet you
GETPIN
S ERROR curses.dialog_create 83886381
ERR 83886381 Screen or window too small <Pinentry>
这里我首先将 tty 大小调小,然后调用pinentry-curses
.它等待命令,我输入了GETPIN
获取 PIN 码的命令。它抱怨屏幕太小而无法显示对话框。 GnuPG 只是报告它无法获取 PIN。
我看到了你写的票,但是你的建议是介于困难和不可能之间,因为gpg
不应该关心终端尺寸,因此不应该声称终端太小。
相反,我建议使用以下文本(我不想在那里创建帐户):
gpg
pinentry-program
如果需要解密密钥,则调用。如果pgp
不显示通用消息
decryption failed: No secret key
而是从 转发消息pinentry-program
,例如:
Can't decrypt key, pinentry-program failed with (text from ERR response)
,那么对用户来说会更好。
此外,如果由 gpg 团队维护,它可以检测到小窗口,并与未设置pinentry-curses
时的行为相同,从而避免此错误。$TERM