Смена ключа для 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 сам перешифрует все файлы с использованием нового ключа и создаст соответствующие коммиты в репозитории.