Новый ключ для pass

Смена ключа для pass — явление редкое и не всегда оправданное. Ведь смысл имеет менять не только сам ключ, но и все пароли. Можно, конечно, почистить историю Git’a на всех устройствах или вообще создать новый репозиторий, но в случае утери ключа это не спасёт, а в случае тревожности — просто станет защитой от самого себя. Интереса ради решил посмотреть, как это делается. Как и ожидалось, всё оказалось просто — pass предусмотрел даже такую опцию для параноиков. Заодно решил перейти с RSA на Ed25519 — всё-таки пора обновляться.

Генерация нового ключа

Стандартная команда для создания ключа:

gpg --full-generate-key

Выбираем алгоритм:

(9) ECC (sign and encrypt) *default*

Затем выбираем кривую:

(1) Curve 25519 *default*

Ed25519 — это вариант эллиптических кривых (Curve25519), оптимизированный для скорости и безопасности, поэтому он стал дефолтным выбором в современных версиях GPG. Далее задаём срок действия, имя и пароль для ключа — после этого он будет создан. Проверить результат можно командой:

gpg --list-keys

Переинициализация pass

Теперь нужно указать новый ключ в файле:

~/.password-store/.gpg-id

и выполнить команду:

pass init NEW-KEY-ID

Вот и всё — pass сам перешифрует все файлы с использованием нового ключа и создаст соответствующие коммиты в репозитории.