From 8ff917662da0663a4af4a78d4c04f34965b55ce8 Mon Sep 17 00:00:00 2001 From: ARNik Date: Tue, 21 Jan 2025 19:15:11 +0300 Subject: [PATCH] gpg sign --- src/GIT-GPG-sign.md | 116 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 src/GIT-GPG-sign.md diff --git a/src/GIT-GPG-sign.md b/src/GIT-GPG-sign.md new file mode 100644 index 0000000..c7c26a5 --- /dev/null +++ b/src/GIT-GPG-sign.md @@ -0,0 +1,116 @@ +# GPG подпись + + + + +GPG ключи по сравнению с SSH ключами имеют более развитый функционал. +- настройка специализации ключа (шифрование, подпись, авторизация, создание подключей); +- отзыв ранее выпущенных ключей; +- настройка срока действия ключей с возможностью продления в будущем; +- привязка ключей к имени пользователя и почте; +- возможность загрузки публичных ключей на сервера ключей; + +Под Windows утилита gpg идет вместе с git. Так что можно работать сразу после установки git. + +Все свои файлы gpg хранит в `~/.gnupg/` + +Полезные команды: +``` +gpg -k --keyid-format=long # Посмотреть публичные ключи +gpg -K --keyid-format=long # Посмотреть приватные ключи +gpg --full-generate-key # Генерация пары ключей +gpg -a --export # Экспорт публичного ключа +gpg -a --export-secret-keys # Экспорт секретного ключа +gpg --import # Импорт ключа +gpg --delete-key # Удаление публичного ключа +gpg --delete-secrete-key # Удаление секретного ключа +git config --global user.signingkey +``` + +Обозначения типов ключей: +``` +sec - secret primary key (секретный основной ключ) +pub - public primary key (публичный основной ключ) +ssb - secret sub-key (секретный сабключ) +sub - public sub-key (публичный сабключ) +``` + +## Генерация ключей + +Создаем основной (primary) ключ: +``` +gpg --full-generate-key +``` + +Будут показаны следующие варианты: +``` +RSA and RSA - создание основного и сабключа для шифрования +RSA (sign only) - создание только основного ключа +``` +Выбираем RSA (sign only). Этот ключ нужен для генерации других сабключей. + +gpg –expert –edit-key + +## Генерация сабключей + + +Для генерации сабключей заходим в консоль gpg: +``` +gpg --edit-key [keyid] +> addkey +... +> save +``` +`?` - список все комманд +`addkey` - добавить новый сабключ +`save` - не забываем сохранить результаты перед выходом + + +gpg -K --keyid-format=long + +Показать ключ для копирования в репозиторий +gpg -a --export AEBB0598F42201E3 + +## Экспорт ключей + +``` +gpg -a --export-secret-key [keyid] # Экспорт основного ключа +gpg -a --export-secret-subkeys [keyid] # Экспорт сабключей +``` + +## Сохранение на аппаратный ключ + + +``` +gpg --edit-key [keyid] +> keytocard +``` + +gpg --delete-secret-keys ARNik + +## Настройка подписи коммитов в git + +Подписать последний коммит +git commit --amend --no-edit -S + +Также можно добавить соответствующий элиас в .ginconfig +sign = commit --amend --no-edit -S + + + + + + + + + + + + + + + + + + +