этот ответ

аюсь подписать мои коммиты на git, но когда я отправляю их на GitHub, ониUnverified значок и

Ключ, идентификатор ключа которого находится в подписи, не подписывал этот коммит. Возможно, кто-то пытается вас обмануть. Идентификатор ключа GPG: mykeyid

Я нахожу это довольно загадочным, в моем мире идентификатор, с которым подписан коммит, появится в подписи, так как ключ с этим идентификатором подписал коммит!

Вопрос Как это возможно и как мне это решить?

Я особенно хочу иметь возможность подписывать коммиты автоматически из моей IDE, без необходимости каждый раз вводить мою фразу-пароль.

Если интересно, вот краткое изложение соответствующих шагов, которые я сделал. Первые несколько совпадают с руководством GitHub по подписанию коммитов.

Сгенерируйте пару ключей, добавьте ключ GPG, заданный--armor --export на GitHub аккаунтОбновите git config с помощьюuser.signingkey.Установите коммиты для подписи по умолчаниюgit config --global commit.gpgsign true.Версия gpg, поставляемая с git, слишком старая, я установил gpg 2, проверилgpg --versionЯ обновилGNUPGHOME так, на всякий случай.Сделал скриптC:\Users\username\gpg-no-tty.sh и положить в негоecho mypassphrase | gpg --passphrase-fd 0 --batch --no-tty --yes "$@", Не могу найти ничего лучше, чем обычный пароль.Укажите git на этот скриптgit config --global gpg.program C:\\Users\\username\\gpg-no-tty.sh.

Верификация

Важно: я подтвердил, чтоgit verify-commit HEAD показывает тот же идентификатор, что иsigningkey в моем конфиге Git, который совпадает с моим ключом GitHub GPG показывает в настройках. (Также выводится предупреждениеgpg: WARNING: unsafe permissions on homedir)Также важно, как Ferrybig упомянул в комментарии, я проверил, что моя электронная почта в моем gitconfig такая же, как используется для моего ключа gpg, такая же, как и основная (проверенная) электронная почта в GitHub.Как упоминал Дженс Эрат в комментарии, вы также можете использовать отпечаток пальца (строка из 40 символов) вместо длинного идентификатора (16 символов), выводимого командойgpg --list-secret-keys --keyid-format LONGЯ попробовал это в моем gitconfig, но это не помогло.GPG-агент

Как сказал Даниэль Х в комментариях, есть что-то вроде gpg-agent, которое должно запомнить вашу фразу-пароль, и вот что я попробовал:

Добавлятьuse-agent а такжеno-tty (имел какое-то отношение к моей IDE, не ожидая, что интерфейс консоли запрашивает пароль)C:\Users\username\.gnupg\gpg.conf, менятьgpg.program в моем.gitconfig вgpgдобавить вC:/Users/username/.gnupg/gpg-agent.conf время житьdefault-cache-ttl 34560000 а такжеmax-cache-ttl 34560000я получилgpg: gpg-agent is not available in this sessionи так и не нашел, как ее решить. Обеgpg-agent а такжеgpg это версия 2.2.1, так что это не проблема.По некоторым данным, для версии gpg> 2.1 переменная окруженияGPG_AGENT_INFO необходимо указать наC:\Users\username\.gnupg\S.gpg-agent, Я сделал это и перезагрузился. Теперь я получаюgpg: gpg-agent protocol version 0 is not supported.я добавил:1 на этот путь, и теперь я получаюgpg: can't connect to 'C': invalid value, Это не имеет никакого смысла для меня. Что такое С и откуда он? Это буква моего диска, поэтому gpg пытается выполнить путь как объект?

Ответы на вопрос(1)

Ваш ответ на вопрос