После недавних обновлений пакета до моей рабочей станции xenial я обнаружил, что больше не могу подписывать коммиты Git, где я получаю сообщения об ошибках, как показано ниже, и где больше не появляется диалоговое окно для ввода моего ключа. Ключевая фраза:
$ git commit -S
error: gpg failed to sign the data
fatal: failed to write commit object
При поиске я наткнулся на на этой странице 2016 года , говоря о несоответствии между pinentry и gpg2 (моя программа GPG установлена в gpg2
в моем .gitconfig
]), и действительно, как они упоминают, у меня есть gpg2 2.1.x и pinentry 0.9.x:
$ gpg2 --version
gpg (GnuPG) 2.1.11
libgcrypt 1.6.5
$ pinentry --version
pinentry-gnome3 (pinentry) 0.9.7
Еще один тест, который они предлагают, не проходит аналогично
$ echo test | gpg2 --clearsign
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
test
gpg: signing failed: Operation cancelled
gpg: [stdin]: clearsign failed: Operation cancelled
У меня есть gpg- агент работает, хотя я не знаю, уничтожил ли я его заново gpg-agent
. Кажется, что не существует какой-либо службы, которая запускает его.
Я не уверен, что недавнее обновление действительно поместило пакет gnupg2 в 2.1.x, но я не могу на всю жизнь найти 2.0.x, чтобы попробовать понизить его, или 1.x pinentry для ксениала.
1114 Страница, которую я смотрел на красную сельдь? Как мне снова подписать вещи?
PS. Через несколько дней он снова начал работать, но я не знаю, что я сделал; ничто не выглядит иначе. Может быть, перезагрузка исправила это? :/
$ gpg2 --version
gpg (GnuPG) 2.1.11
libgcrypt 1.6.5
...
$ pinentry --version
pinentry-gnome3 (pinentry) 0.9.7
...
$ echo test | gpg2 --clearsign
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
test
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJbT0xjAAoJEAnk6ni30keKELoP/iGeP7PkxEsJSmCwgUMJpqWq
qIV/hobcZ2iqLi5WjCMtEAmJRwVu89GT0MW2wHl28t5+iJriW67pg4MoT1zKGSPN
Я знаю, что это устарело, но для всех, у кого есть эта проблема, вы могли забыть запустить git config --global user.signingkey yourkey
.