Это пошаговое руководство о том, как включить автоматическое подписание Git-коммитов с помощью GPG для всех приложений, которые не поддерживают его изначально (например: GitHub Desktop, JetBrains Rider, ...)
- Установите GPG4Win: это программное обеспечение представляет собой пакет с последней версией GnuPG v2, Kleopatra v3 Certificate manager, GNU Privacy Assistant (GPA) v0.9, который представляет собой графический интерфейс, использующий GTK+, GpgOL и GpgEX, которые соответственно являются расширением для MS Outlook и расширением для оболочки проводника Windows
- Установите Git for Windows: это программное обеспечение представляет собой пакет с последней версией git и расширение оболочки Проводника Windows (убедитесь, что ваша локальная версия Git-это, как минимум, 2.0, иначе Git не поддерживает автоматический вход в ваши коммиты)
- Откройте
PowerShell
и проверьте, был ли Git успешно установлен с помощью командыgit --version
:git --version -> git version 2.15.1.windows.2
Помните, что Git for Windows устанавливает старую версию GnuPG 1.4.xx (предоставляемую через среду MINGW), но это не имеет значения, так как мы собираемся вручную указать, какую программу GnuPG должен использовать наш Git (а именно версию GnuPG, установленную GPG4Win)
-
Проверка наличия GPG: Откройте
PowerShell
и введите командуgpg --help
.- Если
PowerShell
бьёт ошибку:- Добавьте путь к директории в которую был установлен GPG4Win (например: "C:\Program Files (x86)\GnuPG\bin\gpg.exe") в переменные среды Windows:
- Откройте
Пуск
->Параметры
->Система
->О системе
->Дополнительные параметры системы
->Дополнительно
->Переменные среды
. - Выбирите переменную
PATH
и нажмитеИзменить
. - В конец списка добавте Ваш путь.
- Перезагрузите машину.
- Откройте
- Добавьте путь к директории в которую был установлен GPG4Win (например: "C:\Program Files (x86)\GnuPG\bin\gpg.exe") в переменные среды Windows:
- Если
-
Генерация ключа: в
PowerShell
необходимо прописать командуgpg --default-new-key-algo rsa4096 --gen-key
чтобы вывести список GPG-ключей, к которым у вас есть как открытый, так и закрытый ключ в длинной форме.
Закрытый ключ необходим для подписи коммитов или тегов.
(Для более подробного описания команды перейдите сюда)gpg --list-secret-keys --keyid-format LONG
C:/Users/johnSmith/AppData/Roaming/gnupg/pubring.kbx ---------------------------------- sec 4096R/E870EE00B5D90537 2017-12-31 [expires: 2021-12-31] uid John Smith <[email protected]> ssb 4096R/F9E3E72EBBFDCFD6 2017-12-31
-
Создайте сертификат отзыва: эта команда создает файл .rev, необходимый для отзыва открытого ключа, совместно используемого на сервере ключей.
gpg --gen-revoke E870EE00B5D90537
-
Отправьте открытый ключ: эта команда никогда не отправит закрытый ключ
gpg --send-keys E870EE00B5D90537
-
Экспорт открытого ключа: эта команда выдаёт сертификат открытого ключа
gpg --export -a "[email protected]"
-----BEGIN PGP PUBLIC KEY BLOCK----- QwedWRdscg2708952n66oFicp4gRGld6jwXREbGRybnYNPy5nVw2IZleWx2HzEkv sXTSv9xGzNZO+ISkGCw767i7YNuuowDN14vfFdgvWKD1vRQJ7avv2+zYFU7iwL0/ ... H4V2mPy20msrmbRsiQQiwjvSKlIunH+7RXmjcmg= =V8Bi -----END PGP PUBLIC KEY BLOCK-----
-
Добавьте открытый ключ GPG в GitHub: Перейдите на эту страницу и выберите "New GPG key", а затем вставьте свой открытый ключ и нажмите кнопку "Add GPG key"
-
Настройка Git для автоматической подписи всех коммитов: это изменение вашей глобальной конфигурации Git, если вы хотите добавить автоматический вход в один репозиторий, удалите
--global
из команды.git config --global user.signingkey E870EE00B5D90537 git config --global commit.gpgsign true
-
Настройка Git для использования пользовательской программы GPG:
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
-
Настройка глобальной конфигурации Git
git config --edit --global
Откроется окно текстового редактора. Необходимо в начале файла добавить/заменить текущий, если есть, атрибут
[user]
.[user] name = John Smith email = [email protected] signingkey = E870EE00B5D90537
Так же необходимо удостовериться в наличии атрибутов
[commit]
и[gpg]
... [commit] gpgsign = true [gpg] program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe ...
Так же в конец файла можете добавить
[core] editor = \"Path\\To\\Your\\Favorite\\Text\\Editor\" --wait
Просто нажмите кнопку "Commit" на вашей любимой IDE, вы увидите простое окно, которое спросит ваш пароль ключа.
Помните, что GPG4Win устанавливает также агент GPG, который запоминает ваш пароль в течение ограниченного времени (около 30 минут) по умолчанию, поэтому вам не нужно вводить пароль каждый раз при комите.
Вот и все!