Compare commits

...

1 Commits

Author SHA1 Message Date
50f9049c98 gpg key expire 2026-01-19 17:24:30 +03:00

View File

@@ -9,6 +9,7 @@ GPG ключи по сравнению с SSH ключами имеют боле
- настройка срока действия ключей с возможностью продления в будущем; - настройка срока действия ключей с возможностью продления в будущем;
- привязка ключей к имени пользователя и почте; - привязка ключей к имени пользователя и почте;
- возможность загрузки публичных ключей на сервера ключей; - возможность загрузки публичных ключей на сервера ключей;
- возможность хранения секретных ключей на аппаратном ключе который поддерживает стандарт OpenPGP Card (например Yubikey)
Под Windows утилита gpg идет вместе с git. Так что можно работать сразу после установки git. Под Windows утилита gpg идет вместе с git. Так что можно работать сразу после установки git.
@@ -81,10 +82,9 @@ gpg --expert --edit-key [id]
Прежде удалять мастер ключ или переносить сабключи на карту, необходимо сделать бекап (экспорт) всей нашей работы. Прежде удалять мастер ключ или переносить сабключи на карту, необходимо сделать бекап (экспорт) всей нашей работы.
``` ```
gpg -a --export-secret-key [id] > master.key # Экспорт основного ключа gpg -a --export-secret-key [id] > master.key # Экспорт мастер ключа (вместе с сабключами)
gpg -a --export-secret-subkeys [id] > subkeys.key # Экспорт сабключей gpg -a --export-secret-subkeys [id] > subkeys.key # Экспорт сабключей (не обязательно)
gpg -a --export [id] public.key # Экспорт публичных ключей gpg -a --export [id] > public.key # Экспорт общего публичного ключа
``` ```
## Сохранение на аппаратный ключ ## Сохранение на аппаратный ключ
@@ -108,11 +108,11 @@ gpg --edit-key [id] # входим в режим редактиро
## Удаление секретных ключей ## Удаление секретных ключей
Удалем секретный ключ: Удаляем секретные ключи:
``` ```
gpg --delete-secret-keys [id] gpg --delete-secret-keys [master-key-id]
``` ```
Удалятся все секретные ключи. Для того чтобы gpg понял что секретные ключи находятся на карте выполняем: Для того чтобы gpg понял что секретные ключи находятся на карте выполняем:
``` ```
gpg --card-status gpg --card-status
``` ```
@@ -127,7 +127,7 @@ https://keys.openpgp.org/
Ключи лучше загружать через web-интерфес чтобы получить ссылку для верификации почты. Ключи лучше загружать через web-интерфес чтобы получить ссылку для верификации почты.
После того как public ключ загружен на сервер, можно добавить URL ключа в настройки карты. Тогда будет возможно настравить новый компьютер совсем просто: После того как public ключ загружен на сервер, можно добавить URL ключа в настройки карты. Тогда будет возможно настраивать новый компьютер совсем просто:
``` ```
gpg --card-edit # Заходим в настройки карты gpg --card-edit # Заходим в настройки карты
> fetch # Скачиваем public ключ > fetch # Скачиваем public ключ
@@ -160,8 +160,7 @@ signoff = commit --amend --no-edit -s
Если удалить не получается то надо убить процессы: Если удалить не получается то надо убить процессы:
``` ```
gpgconf --kill gpg-agent gpgconf --kill all
gpgconf --kill keyboxd
``` ```
Импортируем ключи с карты: Импортируем ключи с карты:
@@ -178,3 +177,40 @@ gpg --edit-key [id]
5 5
> quit > quit
``` ```
## Продление ключей
Короткий вариант продлить сразу все ключи:
```
gpg --import ~/master.key # временно импортируем мастер ключ
gpg --quick-set-expire [master-key-fingerprint] 1y '*' # продляем на 1 год с текущей даты
gpg --quick-set-expire [master-key-fingerprint] 2025-12-31 '*' # или указываем конкретную дату
gpg --delete-secret-keys [master-key-id] # удаляем секретные ключи
gpg --keyserver keys.openpgp.org --send-keys [master-key-id] # обновляем на сервере
gpg -a --export [master-key-id] > public.key # экспорт публичных ключей
# обновляем public.key на всех серверах git
```
Или вручную по одному:
```
gpg --import ~/master.key # временно импортируем мастер ключ
gpg --edit-key [master-key-id]
> key 1 # выбираем первый сабключ
> expire # редактируем срок действия
> 1y # 1 год например
> key 1 # снимаем старый выбор
> key 2 # выбираем следующий сабключ
> expire # редактируем срок действия
> 1y # 1 год например
> key 2 # снимаем старый выбор
> key 3 # выбираем следующий сабключ
> expire # редактируем срок действия
> 1y # 1 год например
> key 3 # снимаем старый выбор
> save # сохраняем (локальные ключи сотрутся!)
gpg --delete-secret-keys [master-key-id] # удаляем секретные ключи
gpg --keyserver keys.openpgp.org --send-keys [master-key-id] # обновляем на сервере
gpg -a --export [master-key-id] > public.key # экспорт публичных ключей
# обновляем public.key на всех серверах git
```
Обновлять приватные ключи на аппаратных ключах (Yubikey) не нужно, т.к. там храниться только криптографическая часть, без метаданных.