Создание GPG-ключа для подписи коммитов

Info

Чтобы подписывать коммиты в GitVerse, вам понадобится GPG-ключ. Если у вас его еще нет, вы можете создать новый. Эта инструкция подходит для всех основных операционных систем: macOS, Windows и Linux.

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

GPG (GNU Privacy Guard) — инструмент для работы с GPG-ключами. Убедитесь, что он установлен на вашей системе:

  • macOS: GPG не установлен по умолчанию. Установите его через официальный сайт GnuPG или менеджеры вроде brew install gnupg;
  • Windows: Если у вас установлен Git for Windows, GPG уже включен. Иначе скачайте GnuPG для Windows;
  • Linux: Установите через пакетный менеджер.
    sudo apt install gnupg    # Ubuntu/Debian
    sudo dnf install gnupg    # Fedora

После установки откройте терминал (macOS/Linux) или Git Bash (Windows).

2. Генерация ключа

В терминале выполните одну из следующих команд:

gpg --full-generate-key    # для GPG 2.1.17 и новее (рекомендуется)

Если команда не распознается (особенно на старых системах Linux), используйте:

gpg --default-new-key-algo rsa4096 --gen-key

3. Настройка параметров ключа

Система запросит несколько параметров:

Тип ключа

Выберите (1) RSA and RSA — это значение по умолчанию и подходит для подписи коммитов.

Размер ключа

Примите значение по умолчанию — 4096 бит — для максимальной безопасности.

Срок действия

Нажмите Enter, чтобы оставить ключ бессрочным. Если вы планируете регулярно обновлять ключи, укажите срок.

Подтверждение параметров

После отображения сводки нажмите O (OK), чтобы продолжить.

4. Укажите данные пользователя

Вам предложат ввести:

  • имя;
  • email-адресобязательно должен совпадать с подтвержденным email в вашем профиле GitVerse;
  • комментарий (необязательно).

Важно: Если email не совпадает с тем, что указан в GitVerse, коммиты не будут верифицированы, даже если подпись технически корректна.

5. Задайте надежную passphrase

Введите и подтвердите пароль для защиты вашего приватного ключа. Он понадобится при каждой подписи коммита.

6. Проверка сгенерированного ключа

Убедитесь, что ключ создан:

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

В выводе вы увидите строку вроде:

sec   rsa4096/3AA5C34371567BD2 2025-12-18 [SC]

Здесь 3AA5C34371567BD2 — это идентификатор вашего ключа (GPG ID).

Для Linux: в некоторых дистрибутивах используется gpg2. Если команда выше не работает, попробуйте:

gpg2 --list-keys --keyid-format=long

И настройте Git на использование gpg2:

git config --global gpg.program gpg2

7. Экспорт публичного ключа

Скопируйте публичную часть ключа в формате ASCII-armored:

gpg --armor --export 3AA5C34371567BD2

Рекомендуется использовать флаг --export-options export-minimal, чтобы избежать устаревших полей:

gpg --armor --export --export-options export-minimal 3AA5C34371567BD2

Вывод будет выглядеть так:

-----BEGIN PGP PUBLIC KEY BLOCK-----

...
-----END PGP PUBLIC KEY BLOCK-----

Скопируйте весь блок, включая строки с BEGIN и END.

8. Добавление ключа в GitVerse

  1. Перейдите в настройки своего профиля в GitVerse.
  2. Откройте раздел Ключи SSH/GPG.
  3. Перейдите на вкладку Ключи GPG.
  4. Нажмите Добавить GPG.
  5. Вставьте скопированный публичный ключ.
  6. Сохраните.

После этого все новые коммиты, подписанные этим ключом, будут помечаться как «Верифицирован».

Важно: в текущей реализации GitVerse верификация зависит от наличия ключа в профиле. Если вы удалите ключ, все подписанные им коммиты станут неверифицированными.

9. Настройка Git для автоматической подписи

Чтобы Git автоматически подписывал все коммиты, выполните:

git config --global user.signingkey 3AA5C34371567BD2
git config --global commit.gpgsign true

Теперь при каждом git commit Git будет использовать ваш ключ для подписи.

Чтобы подписать отдельный коммит вручную (если автоподпись не включена):

git commit -S -m "Ваш коммит"

Сохраните резервную копию приватного ключа и passphrase в надежном месте. Без них вы не сможете подписывать коммиты с этого устройства.