![如何从另一台计算机的“pass”访问我的密码而不传输私人 GPG 密钥?](https://linux22.com/image/211908/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%8F%A6%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E2%80%9Cpass%E2%80%9D%E8%AE%BF%E9%97%AE%E6%88%91%E7%9A%84%E5%AF%86%E7%A0%81%E8%80%8C%E4%B8%8D%E4%BC%A0%E8%BE%93%E7%A7%81%E4%BA%BA%20GPG%20%E5%AF%86%E9%92%A5%EF%BC%9F.png)
我最近了解了pass
git 集成,它允许将我的密码与远程 git 存储库同步。我立即毫不犹豫地进行了配置。
因此,我决定在另一台计算机上克隆此存储库(安装了另一个 GPG 密钥)并尝试访问密码。然而它抱怨道:
pass myaccount
gpg: decryption failed: no secret key
我猜这是因为我安装了另一个 GPG 密钥,而不是我用来加密密码的密钥(尽管我使用相同的 GPG 密钥 ID)。
那么,如何在不将 GPG 私钥从原始机器转移到这台机器的情况下访问这些密码呢?我当然知道密码,如果需要的话可以转移公共密码。
或者我需要复制整个密钥环吗?
想法...
现在写完这篇文章后,我想我更接近于理解它是如何工作的了。所以基本上我能找到的钥匙~/.gnupg
不仅仅是钥匙 - 它们是加密的键。使用密码加密。因此将它们复制到另一台机器上相对安全。这是对的吗?
答案1
我自己还没有尝试过,但pass
应该能够加密多个 GPG 密钥的密码,因此将公钥从第二台计算机传输到第一台计算机,然后运行pass init <id-of-GPG-key-1> <id-of-GPG-key-2>
,然后pass
应该加密商店中所有未加密的密码对于它们的这两个密钥,并且(同步时,这是有好处git
的)那么它们应该可以在两台计算机上使用。
如果您忘记了当前加密密码的密钥 ID,您可以查看<password-store>/.gpgid
.