Как изменить ключ gpg хранилища паролей

16

Можно использовать passв качестве менеджера паролей для хранения паролей.

Из руководства не ясно, можно ли легко изменить используемый ключ gpg. Каждый инициализирует хранилище паролей ключом gpg, но мне интересно, что делать, если ключ, например, устарел.

Существует ли удобный способ расшифровки и повторного шифрования всех паролей, хранящихся в диспетчере паролей, с помощью другого ключа?

Виллем Ван Онсем
источник

Ответы:

21

Используйте pass init [-p path] <gpg-id>где <gpg-id>указывает новый ключ gpg, с помощью которого вы хотите зашифровать ваши пароли. Согласно passсправочной странице ,

Если указанный идентификатор gpg отличается от ключа, используемого в любых существующих файлах, эти файлы будут повторно зашифрованы для использования нового идентификатора.

Кажется, это работает по крайней мере в pass 1.6.5. Обратите внимание, что вам потребуется доступ к старому секретному ключу gpg, чтобы расшифровать, а затем повторно зашифровать ваши пароли.

Предостережение 1

Если какой-либо из ваших passкаталогов не перешифровывается с помощью нового ключа, возможно, он содержит .gpg-idфайл, который переопределяет любой gpg-id, указанный на верхнем уровне password-storeкаталога. Я не буду рассказывать о том, как решить эту проблему в этом вопросе, так как это, вероятно, будет слишком касательно, но я скажу, что passсправочная страница довольно неплохо объясняет это.

Предостережение 2

Если ваш ~/.password-storeкаталог является git-репо (то есть вы когда-то запускали pass git init), пожалуйста, обратите внимание, что старое шифрование останется в истории коммитов git-репо; если вы беспокоитесь о потенциально скомпрометированном ключе gpg, вам следует предпринять все необходимые шаги, чтобы избавиться от этой истории git.

Уэйн Уоррен
источник