Как подписывать ваши git-коммиты с помощью GPG-ключей

Когда вы просматриваете репозитории с открытым исходным кодом или профессиональные проекты, вы можете заметить, что некоторые коммиты имеют значок “Проверено” (Verified). Эти подписанные коммиты подтверждают личность автора и добавляют дополнительный уровень доверия к кодовой базе.
Подписание ваших Git-коммитов с помощью GPG-ключей легко настраивается и предоставляет явное доказательство того, что коммиты действительно сделаны вами.
В этой статье вы узнаете, как создать GPG-ключ, настроить Git для его использования и начать автоматически подписывать свои коммиты.
Ключевые моменты
- Подписание Git-коммитов подтверждает вашу личность и повышает доверие к проекту
- Настройка подписания коммитов с помощью GPG включает генерацию ключа и настройку Git
- Подписанные коммиты особенно важны для проектов с открытым исходным кодом и корпоративных разработок
Зачем подписывать Git-коммиты?
- Подтверждение авторства: Другие могут проверить, что коммит был сделан вами, а не кем-то, кто выдает себя за вас.
- Доверие и безопасность: Критически важно для открытого исходного кода, корпоративных и конфиденциальных репозиториев.
- Профессиональные стандарты: Всё чаще ожидается во многих инженерных рабочих процессах.
Подписанные коммиты отображаются с меткой “Проверено” (Verified) на таких платформах, как GitHub.
Как сгенерировать GPG-ключ
Сначала проверьте, есть ли у вас уже GPG-ключ:
gpg --list-secret-keys --keyid-format=long
Если вам нужно создать новый:
gpg --full-generate-key
При появлении запроса:
- Выберите значение по умолчанию (RSA и RSA)
- Установите размер ключа 4096 бит
- Установите срок действия (необязательно, обычно 1 год)
- Введите свое имя и электронную почту (должны соответствовать вашей учетной записи GitHub, если вы используете GitHub)
После создания, выведите список ваших ключей:
gpg --list-secret-keys --keyid-format=long
Найдите идентификатор GPG-ключа (длинная строка), связанный с вашей электронной почтой.
Как настроить Git для использования вашего GPG-ключа
- Укажите Git автоматически подписывать коммиты:
git config --global commit.gpgsign true
- Установите ваш GPG-ключ для Git:
git config --global user.signingkey YOUR_KEY_ID
Замените YOUR_KEY_ID
на идентификатор, который вы нашли ранее.
- Убедитесь, что Git использует GPG:
git config --global gpg.program gpg
Теперь все новые коммиты, которые вы создаете, будут автоматически подписаны.
Связанная статья: Настройка шаблона Git-коммита: пошаговое руководство
Как загрузить ваш GPG-ключ на GitHub
Если вы хотите получить значок “Проверено” на GitHub:
- Экспортируйте ваш открытый ключ:
gpg --armor --export YOUR_EMAIL
- Скопируйте весь вывод.
- Перейдите в GitHub > Settings > SSH and GPG keys > New GPG key.
- Вставьте ваш открытый ключ и сохраните.
Теперь GitHub может проверять ваши подписанные коммиты.
Устранение проблем с подписанием
- Запросы GPG-агента: Некоторые системы требуют дополнительной настройки для кэширования вашей парольной фразы.
- Неправильный адрес электронной почты: Электронная почта вашего GPG-ключа должна соответствовать вашей электронной почте на GitHub (или быть добавлена в вашу учетную запись GitHub).
- Отсутствует gpg: Убедитесь, что GPG установлен (
gpg --version
). Установите его через Homebrew, apt или менеджер пакетов вашей системы, если необходимо.
Заключение
Подписание Git-коммитов с помощью GPG-ключей укрепляет безопасность и целостность вашего проекта. Это небольшой дополнительный шаг, который демонстрирует профессионализм и укрепляет доверие со стороны сотрудников, пользователей и более широкого сообщества разработчиков.
Часто задаваемые вопросы
Да. Если вы не включаете глобальное подписание, вы можете вручную подписать коммит с помощью `git commit -S`.
Да. Вы можете настроить рабочие процессы GitHub Actions для использования GPG-ключа для подписанных коммитов или тегов.
Нет, это необязательно. Но это всё чаще рекомендуется для проектов с открытым исходным кодом и корпоративных проектов.