Сегодня пришло обновление для PhpStorm от JetBrains. Начало показываться уведомление о настройке GPG Agent, и угораздило его тыкнуть. После этого в системе перестало работать любое взаимодействие с GnuPG.

Что именно произошло

Вот это уведомление, с которого все началось:

Предложение настроить GPG Agent

После этого в PhpStorm начинает показываться окно с запросом пароля для ключа:

Запрос пароля для приватного ключа

При попытке ввести свою парольную фразу мы получаем замечательный результат:

Ошибка подписи коммита

Закрадывается мысль “что-то не так”. Пробую глянуть пароли через pass

1
2
3
❯ pass show key/gpg
gpg: сбой расшифровки с открытым ключом: Плохой сертификат центра сертификации
gpg: сбой расшифровки: Плохой сертификат центра сертификации

Продублирую на английском (вдруг кому в выдаче попадется):

1
2
3
LANG=en_US pass show key/gpg
gpg: public key decryption failed: Bad CA certificate
gpg: decryption failed: Bad CA certificate

Ну спасибо, и сами не работают, и все другое взаимодействие с GnuPG в системе поломали. Ни пароль получить, ни письмо подписать ничего.

А что же это за настройка

Настройка состоит в том, что создается (у меня по умолчанию его нет, но возможно дописывается в конец) файл .gnupg/gpg-agent.conf с содержанием:

1
pinentry-program /home/user/.gnupg/pinentry-ide.sh

То есть еще и какой-то sh скрипт закидывают, смотрим его содержанием:

1
2
#!/bin/sh
"/home/user/.local/share/JetBrains/Toolbox/apps/phpstorm/jbr/bin/java" -cp "/home/user/.local/share/JetBrains/Toolbox/apps/phpstorm/plugins/vcs-git/lib/git4idea-rt.jar:/home/user/.local/share/JetBrains/Toolbox/apps/phpstorm/lib/externalProcess-rt.jar" git4idea.gpg.PinentryApp

Видимо все это для запуска git4idea.gpg.PinentryApp, который к сожалению не работает.

Возвращаем все как было

Возможно в других операционных системах нужны дополнительные действия, но распишу как действовать на Fedora 41. Первым делом сносим эти два новых файла:

1
❯ rm .gnupg/{gpg-agent.conf,pinentry-ide.sh}

Далее перезапускаем GPG Agent:

1
❯ gpgconf --reload gpg-agent

После чего GPG в системе начинает работать как положено:

1
2
❯ pass -c key/gpg
Copied key/gpg to clipboard. Will clear in 45 seconds.