最近Github宣布支持签名提交,所以我配置了Git:
git config --global user.signingkey F03CB372
git config --global commit.gpgsign true
我已经有一个 GPG 密钥F03CB372
,看起来我在安装操作系统后不久就创建了它。 KWallet 在某处使用它。
但是当我尝试提交并签名时出现此错误:
$ git commit -S -m 'Signed commit'
gpg: signing failed: Inappropriate ioctl for device
gpg: signing failed: Inappropriate ioctl for device
error: gpg failed to sign the data
fatal: failed to write commit object
没有 KDE 弹出窗口要求我输入密码。
我克服了这个问题killall gpg-agent && gpg-agent --daemon
。我需要在每次重新启动后重新启动我的代理,每次会话一次,第一次使用它。killall
在这里是因为实际上我通常以gpg-agent
某种方式运行,但看起来它是一个配置错误的实例。之后,KDE 要求我提供密码,然后我就可以签署我的提交。
另外,看起来其他程序也受到这个问题的困扰。我不太使用 KWallet,但是,例如,Amarok 在那里存储了我的 Last.FM 帐户。我很少使用它,但我注意到,在我重新启动之前,记录(需要帐户)不起作用gpg-agent
。
这是我的内容~/.gnugpg
:
gpg.conf
openpgp-revocs.d
private-keys-v1.d
pubring.kbx
pubring.kbx~
random_seed
S.gpg-agent
S.uiserver
trustdb.gpg
如您所见,我那里没有任何设置gpg-agent.conf
,但这是默认设置。也许这就是问题所在?