diff --git a/src/GIT-GPG-sign.md b/src/GIT-GPG-sign.md new file mode 100644 index 0000000..e066a39 --- /dev/null +++ b/src/GIT-GPG-sign.md @@ -0,0 +1,96 @@ +# 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: +``` +gpg --expert --edit-key ARNik +``` +`?` - список все комманд +`addkey` - добавить новый сабключ +`save` - не забываем сохранить результаты перед выходом + + +gpg -K --keyid-format=long + +Показать ключ для копирования в репозиторий +gpg -a --export AEBB0598F42201E3 + +## Сохранение на аппаратный ключ + + + + +## Настройка подписи коммитов в git + +Подписать последний коммит +git commit --amend --no-edit -S + +Также можно добавить соответствующий элиас в .ginconfig +sign = commit --amend --no-edit -S + + + + + + + + + + + + + + + + + + +