Что нужно для подписывания коммитов с помощью GPG?

Для подписывания коммитов с помощью GPG необходимо:
  • Установить GPG: GnuPG должен быть установлен в системе.
  • Сгенерировать GPG ключ: Создать личный GPG ключ, если его еще нет.
  • Настроить Git: Указать Git'у ваш GPG ключ, настроив переменную user.signingkey.
  • Включить подпись: Использовать флаг -S или --gpg-sign при коммите, либо настроить Git для автоматической подписи всех коммитов.

Для подписывания коммитов с помощью GPG необходимо выполнить несколько шагов. Подпись коммитов обеспечивает целостность и подтверждает авторство, что особенно важно при работе в команде или с открытыми проектами.

  1. Установка GPG:

    Установите GPG (GNU Privacy Guard) на свою систему. Инструкции зависят от вашей операционной системы:

    • Linux (Debian/Ubuntu): sudo apt-get install gnupg
    • Linux (Fedora/CentOS/RHEL): sudo yum install gnupg или sudo dnf install gnupg
    • macOS: Установите GPG с помощью Homebrew: brew install gnupg. Может потребоваться установка GPG Suite с gpgtools.org для интеграции с macOS.
    • Windows: Скачайте и установите Gpg4win с gpg4win.org.
  2. Генерация GPG ключа:

    Если у вас нет GPG ключа, сгенерируйте его. Запустите команду:

    gpg --gen-key

    Следуйте инструкциям на экране. Рекомендуется использовать RSA и указать длину ключа 4096 бит. Запомните или запишите свой user ID (имя и email).

  3. Получение GPG ID ключа:

    Узнайте ID вашего GPG ключа. Выполните команду:

    gpg --list-secret-keys --keyid-format long

    Найдите строку, начинающуюся с sec. ID ключа – это 8-символьный код после слеша (/). Например: sec rsa4096/3AA5C34371567BD2 2016-03-10 [SC]. ID ключа в данном случае - 3AA5C34371567BD2.

  4. Настройка Git для использования вашего GPG ключа:

    Сообщите Git, какой GPG ключ использовать для подписи коммитов. Замените YOUR_GPG_KEY_ID на фактический ID вашего ключа, полученный на предыдущем шаге:

    git config --global user.signingkey YOUR_GPG_KEY_ID
  5. Настройка подписи коммитов:

    Чтобы всегда подписывать коммиты, выполните команду:

    git config --global commit.gpgsign true

    Если вы хотите подписывать только определенные коммиты, используйте флаг -S при коммите:

    git commit -S -m "Your commit message"
  6. Настройка подписи тегов:

    Чтобы подписывать теги, используйте флаг -s или -a при создании тега:

    git tag -s v1.0 -m "Release v1.0"

    Или

    git tag -a v1.0 -m "Release v1.0" -s
  7. Добавление GPG ключа в GitHub (или другой сервис Git):

    Чтобы GitHub (или другой сервис Git) отображал, что ваши коммиты подписаны, вам нужно добавить ваш GPG публичный ключ в настройки аккаунта.

    • Экспорт публичного ключа:
      gpg --armor --export YOUR_GPG_KEY_ID

      Скопируйте вывод команды (включая -----BEGIN PGP PUBLIC KEY BLOCK----- и -----END PGP PUBLIC KEY BLOCK-----).

    • Добавление ключа в GitHub:
      1. Перейдите в настройки своего профиля GitHub.
      2. Выберите "SSH and GPG keys".
      3. Нажмите "New GPG key" или "Add GPG key".
      4. Вставьте скопированный ключ и нажмите "Add GPG key".
  8. Решение проблем с GPG агентом (macOS):

    На macOS могут возникнуть проблемы с доступом Git к GPG агенту. Проверьте, что агент запущен и сконфигурирован правильно. Обычно помогает добавление следующих строк в ваш ~/.bashrc или ~/.zshrc:

    export GPG_TTY=$(tty)
    export GPG_AGENT_INFO=$HOME/.gnupg/S.gpg-agent:0
    gpgconf --launch gpg-agent

    После этого необходимо перезапустить терминал.

После выполнения этих шагов ваши коммиты будут подписаны GPG, и вы сможете убедиться в их подлинности.

0