Back

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

Как подписывать ваши 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`.

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

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

Listen to your bugs 🧘, with OpenReplay

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