GPG-ключи

GPG (GNU Privacy Guard) подписи предоставляют безопасный метод подтверждения подлинности и целостности данных. При помощи GPG подписей можно удостовериться, что данные, такие как коммиты в системе управления версиями Git, были созданы указанным автором и не были изменены после создания. Это особенно важно в контексте разработки программного обеспечения, где необходимо подтверждать авторство изменений кода и защищать его от несанкционированных модификаций.

Установка

Для корректной работы GPG необходимо загрузить программный пакет gpg1

Windows:

Перейдите на официальный сайт GnuPG и скачайте установочный файл для Windows: GnuPG for Windows.

Linux / Astra Linux:

sudo apt install gnupg1

MacOS:
  1. Установите Homebrew
  2. Используйте Homebrew для установки: brew install gnupg1
Проверка установки:

gpg --version

Конфигурация

После установки необходимых инструментов выполните команду gpg1 --gen-key и следуйте инструкциям.

После создания ключа необходимо получить его отпечаток для указания его в git config. Обычно после создания ключа он отображается в общей информации. Скопируйте его для дальнейших действий.

Если вы пропустили на одном из шагов явно отображенный FINGERPRINT, выполните следующую команду для его получения

gpg1 --fingerprint

Далее необходимо скопировать отпечаток ключа в буфер, предварительно удалив все пробелы, если они есть.

Укажите в git config все следующие параметры :

git config gpg.program gpg1

git config --global user.signingkey FINGERPRINT

Вместо FINGERPRINT вставьте отпечаток вашего gpg-ключа и выполните команду.

Далее вам необходимо скопировать сгенерированный gpg-ключ, для его вывода выполните команду:

gpg1 --armor --export your@mail.org или gpg1 --armor --export FINGERPRINT

Далее полученный ключ сохраните в настройках профиля в gitflic в разделе “Ключи”

Обратите внимание, что ключи с двумя и более владельцами использовать запрещено.

gpg-1

Подключи

Так же GitFlic поддерживает работу с подключами. Сначала получите отпечаток подключа:

gpg1 --list-secret-keys --with-subkey-fingerprint

Укажите отпечаток подключа в git config :

git config --global user.signingkey FINGERPRINT

Далее вам необходимо скопировать сгенерированный gpg-ключ, выполните команду:

gpg1 --armor --export FINGERPRINT

Далее полученный ключ сохраните в настройках профиля в gitflic в разделе “Ключи”

Использование

Для подписания коммита ранее созданным ключом используется команда git commit -S -m "commit message", где -S параметр, который дает указание git подписать ваш коммит gpg-ключом. После его выполнения потребуется ввести пароль от gpg-ключа для подписи вашего коммита.

Для автоматической подписи коммитов воспользуйтесь командой: git config --global commit.gpgSign true

Когда все действия будут выполнены - в интерфейсе сервиса на коммитах будет отметка “Верифицирован”

Если вы неверно связали gpg-ключ и используемый профиль, вы увидите метку “Неверифицирован”, при нажатии на нее вы получите более подробную информацию для исправления связи.