gpg key expire

This commit is contained in:
2026-01-16 23:14:15 +03:00
parent f0d89afee8
commit f9318cf14f

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,38 @@ gpg --edit-key [id]
5 5
> quit > quit
``` ```
## Продление ключей
Короткий вариант продлить сразу все ключи:
```
gpg --import ~/master.key # временно импортируем мастер ключ
gpg --quick-set-expire [master-key-fingerprint] 2y '*'
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
```