Compare commits

...

3 Commits

Author SHA1 Message Date
d648f8d418 gpg key expire 2026-01-16 23:26:02 +03:00
f0d89afee8 import public keys from card 2026-01-16 23:25:47 +03:00
d91bdd1fc0 update gitconfig example 2026-01-16 21:48:36 +03:00
2 changed files with 73 additions and 2 deletions

View File

@@ -127,7 +127,7 @@ https://keys.openpgp.org/
Ключи лучше загружать через web-интерфес чтобы получить ссылку для верификации почты. Ключи лучше загружать через web-интерфес чтобы получить ссылку для верификации почты.
После того как public ключ загружен на сервер, можно добавить URL ключа в настройки карты. Тогда будет возможно настравить новый компьютер совсем просто: После того как public ключ загружен на сервер, можно добавить URL ключа в настройки карты. Тогда будет возможно настраивать новый компьютер совсем просто:
``` ```
gpg --card-edit # Заходим в настройки карты gpg --card-edit # Заходим в настройки карты
> fetch # Скачиваем public ключ > fetch # Скачиваем public ключ
@@ -149,3 +149,63 @@ sign = commit --amend --no-edit -S
unsign = commit --amend --no-edit unsign = commit --amend --no-edit
signoff = commit --amend --no-edit -s signoff = commit --amend --no-edit -s
``` ```
## Настройка чистой системы для подписи аппаратным ключом
Если есть аппаратный ключ и нужно настроить подпись коммитов на чистой системе,
то можно просто импортировать публичные ключи с карты.
Предполагается что `.gitconfig` настроен правильно.
Предварительно можно очистить все настройки `gpg` удалив папку `~/.gpgconf`
Если удалить не получается то надо убить процессы:
```
gpgconf --kill gpg-agent
gpgconf --kill keyboxd
```
Импортируем ключи с карты:
```
gpg --card-edit
> fetch
> quit
```
Опционально устанавливаем ключу максимальный уровень доверия:
```
gpg --edit-key [id]
> trust
5
> 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 --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] # обновляем на сервере
```

View File

@@ -36,6 +36,7 @@ git config --global fetch.prune true # Автоматическая
[user] [user]
name = ARNik name = ARNik
email = arnik@arnik.ru email = arnik@arnik.ru
signingkey = AEBB0598F42201E3
[color] [color]
ui = true ui = true
[core] [core]
@@ -47,9 +48,19 @@ git config --global fetch.prune true # Автоматическая
co = checkout co = checkout
br = branch br = branch
ct = commit ct = commit
sign = commit --amend --no-edit -S
unsign = commit --amend --no-edit
signoff = commit --amend --no-edit -s
pr = remote prune origin
lg = log --graph --all\ lg = log --graph --all\
--pretty=format:'%Cred%h%Creset -%C(auto)%d %Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --pretty=format:'%Cred%h%Creset -%C(auto)%d %Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset %G?'
# to pevent "fatal: detected dubious ownership in repository"
[safe]
directory = *
[gpg "ssh"]
allowedSignersFile = ~/.ssh/allowed_signers
``` ```
--- ---
Для изучения Git и в качестве справки хочу порекомендовать: Для изучения Git и в качестве справки хочу порекомендовать: