12k
All articles

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

Статья описывает генерацию GPG-ключа, настройку Git для автоматической подписи коммитов и загрузку публичного ключа на GitHub для отображения значка Verified.

OpenReplay Team
OpenReplay Team
Как подписывать ваши 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-ключа

  1. Укажите Git автоматически подписывать коммиты:
git config --global commit.gpgsign true
  1. Установите ваш GPG-ключ для Git:
git config --global user.signingkey YOUR_KEY_ID

Замените YOUR_KEY_ID на идентификатор, который вы нашли ранее.

  1. Убедитесь, что Git использует GPG:
git config --global gpg.program gpg

Теперь все новые коммиты, которые вы создаете, будут автоматически подписаны.

Связанная статья: Настройка шаблона Git-коммита: пошаговое руководство

Как загрузить ваш GPG-ключ на GitHub

Если вы хотите получить значок “Проверено” на GitHub:

  1. Экспортируйте ваш открытый ключ:
gpg --armor --export YOUR_EMAIL
  1. Скопируйте весь вывод.
  2. Перейдите в GitHub > Settings > SSH and GPG keys > New GPG key.
  3. Вставьте ваш открытый ключ и сохраните.

Теперь GitHub может проверять ваши подписанные коммиты.

Устранение проблем с подписанием

  • Запросы GPG-агента: Некоторые системы требуют дополнительной настройки для кэширования вашей парольной фразы.
  • Неправильный адрес электронной почты: Электронная почта вашего GPG-ключа должна соответствовать вашей электронной почте на GitHub (или быть добавлена в вашу учетную запись GitHub).
  • Отсутствует gpg: Убедитесь, что GPG установлен (gpg --version). Установите его через Homebrew, apt или менеджер пакетов вашей системы, если необходимо.

Заключение

Подписание Git-коммитов с помощью GPG-ключей укрепляет безопасность и целостность вашего проекта. Это небольшой дополнительный шаг, который демонстрирует профессионализм и укрепляет доверие со стороны сотрудников, пользователей и более широкого сообщества разработчиков.

Часто задаваемые вопросы

Могу ли я подписывать только определенные коммиты вместо всех?

Да. Если вы не включаете глобальное подписание, вы можете вручную подписать коммит с помощью `git commit -S`.

Могу ли я использовать подписание GPG с GitHub Actions?

Да. Вы можете настроить рабочие процессы GitHub Actions для использования GPG-ключа для подписанных коммитов или тегов.

Является ли подписание GPG обязательным?

Нет, это необязательно. Но это всё чаще рекомендуется для проектов с открытым исходным кодом и корпоративных проектов.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.