Я получаю эту ошибку при попытке зафиксировать с помощью Git.
gpg: skipped "name <name@mail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
Я создал новый ключ, как показано ниже, но он по-прежнему дает ту же ошибку
gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub 2048R/35F5FFB2 2016-04-23
uid name (New key) <name@mail.com>
sub 2048R/112A8C2D 2016-04-23
Секретный ключ такой же, как указано выше
Я нашел это Создание ключа GPG для тегов git и выполнил шаги, но это все еще не работает, есть идеи?
Ответы:
Перед использованием секретный ключ необходимо настроить.
Или объявите его глобально, если вы хотите использовать один и тот же ключ для каждого репозитория.
Источник: Инструменты Git - подписание вашей работы
источник
git config --global gpg.program gpg2
.Это сработало для меня в Windows 10 (обратите внимание, что я использую абсолютный путь к gpg.exe):
Это была ошибка, которую я получил до исправления:
источник
secret key not available
с помощью VS Code, и установкаgpg.exe
местоположения решила ее.Что сработало для меня, так это добавление
Если вы хотите найти полный путь к gpg2.exe:
источник
gpg.exe
вместоgpg2.exe
.Я хотел бы заполнить все эти ответы, потому что у меня с этим много проблем.
Эти примеры используют
--global
флаг, но вы можете удалить его, если хотите, чтобы эти вещи были локально.Настроить секретный ключ в git
Настройте использование программы witch gpg в git (необязательно)
Некоторые системы (например, Ubuntu) могут иметь
gpg
иgpg2
одновременно. Вам необходимо указать, что вы будете использоватьgpg2
Экспорт GPG_TTY (необязательно)
Если вы используете эту команду в среде ssh, возможно, вы получите следующую ошибку:
Inappropriate ioctl for device
илиgpg: échec de la signature : Ioctl() inapproprié pour un périphérique
. Это можно исправить с помощью:Автоматическое включение пения GPG (необязательно)
источник
--unset
флаг к этимgit config
командам, чтобы отключить егоУ меня была ситуация, когда то же самое происходило со мной на машине с Windows 10.
Команды
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --list-secret-keys --keyid-format LONG
иgpg --list-secret-keys --keyid-format LONG
где дают мне совершенно разные результаты!Основная причина была связана с предыдущими ответами, но в другом смысле:
Я надеюсь, что это поможет любому, кто наткнется на это сообщение, и предыдущие ответы не решают эту проблему.
источник
Вы должны установить переменную
GNUPGHOME
. Без него GnuPG не сможет найти ваши ключи.В Unix он просто добавляет его в путь.
В Windows вам нужно открыть панель управления и установить ее как
источник
GNUPGHOME
. СGPGHOME
ним работает у меняУ меня была та же проблема, что имя git и адрес электронной почты в .gitconfig отличались от предоставленного ключа gpg. Я поменял их, чтобы они соответствовали друг другу, и все заработало.
источник
Использование
"C:\Program Files\Git\usr\bin\gpg.exe"
было для меня решением.Пришлось удалить клеопатру. С ним ничего не вышло.
Итак, подводя итоги;
Нет необходимости в клеопатре, вместо этого используйте GIT по умолчанию.
источник
Может быть, вам нужно клонировать собственный репозиторий, на который у вас есть права. У меня возникла эта проблема, когда я клонировал репозиторий другого человека.
источник