GPG-подпись
GPG-ключи
GPG (GNU Privacy Guard) подписи предоставляют безопасный метод подтверждения подлинности и целостности данных. При помощи GPG подписей можно удостовериться, что данные, такие как коммиты в системе управления версиями Git, были созданы указанным автором и не были изменены после создания. Это особенно важно в контексте разработки программного обеспечения, где необходимо подтверждать авторство изменений кода и защищать его от несанкционированных модификаций.
Установка
Для корректной работы GPG необходимо загрузить программный пакет gpg1
Windows:
Перейдите на официальный сайт GnuPG и скачайте установочный файл для Windows: GnuPG for Windows.
Linux / Astra Linux:
sudo apt install gnupg1
MacOS:
- Установите Homebrew
- Используйте 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 в разделе "Ключи"
Обратите внимание, что ключи с двумя и более владельцами использовать запрещено.
Подключи
Так же 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-ключ и используемый профиль, вы увидите метку "Неверифицирован", при нажатии на нее вы получите более подробную информацию для исправления связи.