如何更改pass密码存储的gpg密钥

Wil*_*sem 24 password pgp

可以pass用作密码管理器来存储密码。

手册中不清楚的一件事是是否可以轻松更改使用的 gpg 密钥。一个人用 gpg 密钥初始化密码存储,但我想知道如果密钥过时该怎么办。

是否有一种方便的方法可以使用另一个密钥解密和重新加密存储在密码管理器中的所有密码?

小智 36

使用pass init [-p path] <gpg-id>where<gpg-id>指定要用于加密密码的新 gpg 密钥。根据pass手册页

如果指定的 gpg-id 与任何现有文件中使用的密钥不同,这些文件将被重新加密以使用新的 id。

这似乎至少在pass 1.6.5. 请注意,您需要访问旧的 gpg 私钥才能解密并重新加密您的密码。

警告 1

如果您的任何pass目录没有使用新密钥重新加密,则可能是它有一个.gpg-id覆盖password-store目录顶级指定的任何 gpg-id 的文件。我不会在这个问题中介绍如何解决这个问题,因为它可能有点过于切题,但我会说pass手册页很好地解释了它。

警告 2

如果你的~/.password-store目录是一个 git repo(即你曾经运行过pass git init),那么请注意旧的加密将保留在 git repo 的提交历史中;如果您担心的是 gpg 密钥可能被泄露,那么您应该采取任何必要的步骤来清除该 git 历史记录。