Recentemente o Github anunciou suporte para commits assinados, então eu configurei o Git:
git config --global user.signingkey F03CB372
git config --global commit.gpgsign true
Eu já tinha uma chave GPG F03CB372
, parece que eu a criei logo após a instalação do sistema operacional. É usado em algum lugar pelo KWallet.
Mas quando tento confirmar e assinar recebo este erro:
$ 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
Nenhum popup do KDE me pede uma senha.
Eu supero isso com killall gpg-agent && gpg-agent --daemon
. Eu preciso reiniciar meu agente após cada reinicialização, uma vez por sessão, a primeira vez que usá-lo. killall
está aqui porque, na verdade, geralmente tenho gpg-agent
em execução, mas parece que é uma instância mal configurada. Depois disso, o KDE me pede uma frase secreta e eu recebo meus commits assinados.
Além disso, parece que outros programas também sofrem com isso. Eu não uso muito o KWallet, mas, por exemplo, o Amarok armazena minha conta no Last.FM lá. Eu uso isso muito raramente, mas notei que scrobbling (que precisa da conta) não funciona até que eu reinicie gpg-agent
também.
Aqui está o que eu tenho em ~/.gnugpg
:
gpg.conf
openpgp-revocs.d
private-keys-v1.d
pubring.kbx
pubring.kbx~
random_seed
S.gpg-agent
S.uiserver
trustdb.gpg
Como você pode ver, não tenho nenhum gpg-agent.conf
, mas essa é a configuração padrão. Talvez este seja o problema?