可以使用pass
作为密码管理器来存储密码。
手册中没有明确说明的一件事是,是否可以轻松更改所使用的 gpg 密钥。有人使用 gpg 密钥初始化密码存储,但我想知道如果密钥过期了该怎么办。
是否有一种方便的方法可以用另一个密钥解密并重新加密密码管理器中存储的所有密码?
答案1
使用pass init [-p path] <gpg-id>
where<gpg-id>
指定要用来加密密码的新 gpg 密钥。根据pass
手册页,
如果指定的 gpg-id 与任何现有文件中使用的密钥不同,则这些文件将被重新加密以使用新的 id。
这似乎至少在 中有效pass 1.6.5
。请注意,您需要访问旧的 gpg 私钥才能解密并重新加密您的密码。
警告1
如果您的任何pass
目录未使用新密钥重新加密,则可能是因为该文件有一个.gpg-id
文件覆盖了目录顶层指定的任何 gpg-id password-store
。我不会在这个问题中介绍如何解决这个问题,因为这可能有点太离题了,但我要说的是,pass
手册页对此进行了很好的解释。
警告2
如果您的~/.password-store
目录是 git repo(即,您曾经运行过pass git init
),那么请注意,旧的加密将保留在 git repo 的提交历史记录中;如果您担心 gpg 密钥可能被泄露,那么您应该采取一切必要步骤来摆脱该 git 历史记录。