Настройка Git для использования GPG-ключа

Info

Чтобы подписывать коммиты локально, вам нужно сообщить Git, какой GPG-ключ использовать. Без этой настройки Git не сможет автоматически подписывать ваши изменения, даже если ключ уже добавлен в профиль GitVerse.

1. Проверьте наличие ключа

Убедитесь, что у вас есть действующий GPG-ключ с приватной частью:

gpg --list-secret-keys --keyid-format=long

В выводе должна быть строка вроде:

sec   rsa4096/3AA5C34371567BD2 2025-12-18 [SC]

Если ключа нет — перейдите к разделу Создание нового GPG-ключа .

🔍 Для Linux: если используется gpg2, выполните:

gpg2 --list-keys --keyid-format=long

И настройте Git:

git config --global gpg.program gpg2

2. Укажите Git, какой ключ использовать

Выполните команду, подставив ваш GPG-идентификатор (например, 3AA5C34371567BD2):

git config --global user.signingkey 3AA5C34371567BD2

Если вы хотите использовать подключ (subkey) вместо основного ключа, укажите его ID (например, 4BB6D45482678BE3):

git config --global user.signingkey 4BB6D45482678BE3

3. Включите автоматическую подпись коммитов

Чтобы Git подписывал все коммиты по умолчанию, выполните:

git config --global commit.gpgsign true
git config --global tag.gpgSign true

Теперь при каждом git commit или git tag Git будет использовать ваш GPG-ключ для подписи.

4. (Опционально) Настройка переменной окружения

Если вы работаете в терминале и получаете ошибку gpg: signing failed: Inappropriate ioctl for device, добавьте в файл ~/.bashrc (или ~/.zshrc) строку:

[ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc

Затем перезагрузите конфигурацию:

source ~/.bashrc

5. Проверьте настройки

Проверьте, что все настроено правильно:

git config --global user.signingkey
git config --global commit.gpgsign
git config --global tag.gpgSign

Вы должны увидеть:

3AA5C34371567BD2
true
true

6. Пример подписания коммита

Сделайте тестовый коммит:

git commit -m "Тестовая подпись"

Git автоматически подпишет его. Вы можете проверить подпись:

git log --show-signature -1

Теперь все ваши коммиты будут автоматически подписываться вашим GPG-ключом, и в GitVerse они будут отображаться как Верифицирован, если ключ добавлен в ваш профиль.

Сохраните резервную копию вашего приватного ключа и passphrase — они нужны для подписи коммитов с других устройств.