urb*_*ban 14 linux password-management gnupg
我正在尝试设置供各种脚本(和人员)使用的业务内部密码存储。我已经查看了许多替代方案,但最容易修改以实现我的目标似乎是pass实用程序。
在 GPG 方面,我不太擅长安全性和真正的菜鸟。我设法通过以下方式为单个用户工作:
pass init <key_hex>我也知道我可以使用-p选项(或 env 变量)在“数据”文件夹而不是主目录(默认为~/.password-store)中初始化传递存储。
但是,我希望 (Linux) 主机/机器的所有用户(或以后特定组的用户)能够访问相同的密码存储。据我了解,我需要以某种方式为所有这些用户创建一个共享的 GPG 密钥,以便每个人都可以使用该pass实用程序访问同一个商店并检索密码。我不知道如何进行这样的设置,我有点卡住了......
任何帮助,将不胜感激
小智 14
可以将多个 gpg-id 添加到.gpg-id文件中以加密目录中的每个密码。这样做将允许在不同成员之间共享密码存储,而无需将私钥交给每个人。
如果这样做有意义,也可以创建具有不同 gpg-id 集的子目录。
参见man pass下init获取更多详细信息。
这是一篇概述该过程的优秀文章:https : //medium.com/@davidpiegza/using-pass-in-a-team-1aa7adf36592
希望这可以帮助。
小智 8
为了避免共享私钥,这并不是他们真正的目的,您可能需要查看相对较新的gopass替代方案pass,它兼容pass并允许您本地支持多个收件人,同时执行git基于工作的工作-流动。
它是开源的、基于 Go 的,可在Github 上获得。
它具有在多用户环境中使用 pass 时您目前可能缺乏的以下功能:
在团队中共享密码时,这真的很有趣。
就像pass,这意味着它正在使用gpg,它以与pass, 在.gpg文件的第一行等相同的格式存储密码。
gopass 的正常工作流程如下:
pass一个)并将每个收件人添加到其中。不错的是,对密码存储的每次提交都可以通过 git进行签名,它与 PGP 智能卡兼容,例如pass,如果您已经在生活中使用过 Go,那么可以轻松地按照您想要的方式对其进行调整。该代码带有大量的单元测试和足够好的文档。
在您的特定情况下,它应该可以很好地工作。您甚至可以避免使用完全远程的 git 服务器,而只需将其存储在一个公共文件夹中。
小智 2
每个用户都有权访问 pass,并将对该目录进行 pass init,其钥匙串中存在 GPG 密钥(第二个而不是他们自己的)
首先,确保您的通行证存储已使用 git 初始化。
添加您需要的密码。提交并推送到所有用户都可以访问的存储库。
然后每个用户将克隆这个包含您的加密密码(但不是 GPG 密钥)的 git 存储库
您可以通过以下方式传播您的 GPG 密钥:
gpg --export-secret-key -a "User Name" > private.key
Run Code Online (Sandbox Code Playgroud)
然后为每个用户导入它
gpg --allow-secret-key-import --import private.key
Run Code Online (Sandbox Code Playgroud)
最后,每个用户将使用共享的 GPG 密钥 ID 初始化自己的通证存储库
init [ --path=sub-folder, -p sub-folder ] gpg-id...
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获取密钥 ID
gpg --list-keys
Run Code Online (Sandbox Code Playgroud)
注意:您必须考虑共享私钥的逻辑。
我在这份关于 GPG 的优秀备忘单上引用了 scout3801@gmail.com
用例 *.2:上面提到的是导出和导入密钥的命令,我想解释一下您可能想要这样做的原因之一。基本上,如果您属于一个组,并且想要为该组创建单个密钥对,则一个人将创建该密钥对,然后导出公钥和私钥,将它们提供给该组的其他成员,然后他们都会导入该密钥对。然后,组的成员或外部的某人可以使用组公钥,加密消息和/或数据,并将其发送给组的成员,并且所有成员都将能够访问该消息和/或数据。基本上,您可以创建一个简化的系统,其中只需要一个公钥即可将加密的内容发送给多个收件人。