Мы рассмотрим подписание коммитов и тегов ключом GPG, а также отправку и получение открытых ключей GPG на сервер ключей для проверки.
Шпаргалка
Неподписанный коммит:
Подписанный коммит:
Если ваши адреса электронной почты git и gpg-ключа отличаются, это приведет к неудаче, пока вы не настроите свой git signingkey
Неподписанный тег:
Подписанный тег:
Переопределение параметров конфигурации автоподписания:
Импорт открытого ключа GPG другого пользователя с сервера ключей
С середины 2021 года стандартный сервер ключей gpg был отключен от сети, есть несколько, которые мы можем выбрать в качестве альтернативы на основе https://en.wikipedia.org/wiki/Key_server_(cryptographic).
Можно использовать keyserver.ubuntu.com в качестве нового сервера по умолчанию.
Он обновляется довольно быстро и вряд ли исчезнет.
Мы можем либо вставить –keyserver keyserver.ubuntu.com в каждую команду, обращающуюся к серверу ключей, либо изменить наш ~/.gnupg/gpg.conf, найдя некомментированную строку keyserver hkp://keys.gnupg.net и заменив ее на keyserver hkp://keyserver.ubuntu.com.
Мы выбрали подход с конфигурацией и рекомендую сделать то же самое.
Таким образом, все приведенные ниже команды продолжат работать без изменений, и вам не нужно будет помнить об использовании пользовательского сервера каждый раз, когда вы используете gpg.
Изменение конфигурационного файла вступает в силу сразу.
Вам не нужно перезапустить агент.
Отправим свой открытый ключ GPG на сервер ключей
Это полезно делать, если вы хотите обменяться с кем-то ключами, и вы должны делать это каждый раз, когда меняете свой ключ, например, обновляете дату его истечения.
Импорт открытого ключа GPG другого пользователя из файла
Пусть они выполнят это, чтобы экспортировать свой открытый ключ GPG и отправить его вам.
Теперь вы можете импортировать его следующим образом.
[/simterm] $ gpg –import theirname.gpg.pub[/simterm]Проверка подписей при мердже ветки с помощью git
Предполагается, что вы уже изменили свой .gitconfig для автоподписания коммитов.
На GitHub вы также можете перейти в настройки settings -> branches -> branch protection rules, требующее подписанных коммитов в 1 или более ветках.
Таким образом, вы сможете обеспечить соблюдение этого правила на уровне pr в GitHub.
Имейте в виду, что если вы сделаете все вышеописанное на GitHub, то у вас может быть меньше участников, потому что создание пары ключей GPG требует больших усилий.
Многие крупные проекты так и поступают.
см. также:
- ⚓ Bash скрипт для проверки публичных репозиториев Github и уведомления о них
- 🔐 Добавление нового ключа SSH в GitHub
- 🔍 Shhgit – поиск секретов в GitHub в реальном времени
- ⚓ Github-Dorks – Коллекция Github дорков и вспомогательного инструмента для автоматизации процесса проверки
- 🔎 yar: инструмент OSINT для разведки репозиториев / пользователей / организаций на Github
- gshark: сканируйте конфиденциальную информацию в Github легко и эффективно