使用ldap支持在git支持的加密gnupg数据库中管理密码

pwmanager的Python项目详细描述


构建状态pypimit licensed

pwmanager

pwmanager是一个用于存储密码的python脚本,可按主机名和 用户,在gnupg加密的git支持的数据库中。它可以加密到多个密钥 还可以从LDAP获取密钥,使您能够轻松、安全地共享和 版本控制密码。对个人和团体都有用 密码存储和共享。

版权所有(c)2019 andreas bofj_llandreas@gazonk.org,请参见许可证 许可证详细信息。

从何处获取

最新版本可在PYPI获得:https://pypi.org/project/pwmanager/

源代码存储库位于github:https://github.com/andbof/pwmanager" rel="nofollow">https://github.com/andbof/pwmanager

基本安装

最快和最简单的方法是使用pypi的pip3作为本地用户进行安装:

pip3 install --user pwmanager

您还可以直接从github安装最新的开发版本 存储库:

pip3 install --user git+git://github.com/andbof/pwmanager.git

需要在配置文件中设置一些选项。样本 包中包括pwmanager.confpwmanager.conf.sample)。PIP3 将其安装到相应的 python站点包目录。它应该放在$home/.pwmanager/

密码存储库的标准位置是$home/.pwmanager/data

pwmanager需要python3>;=3.4和一些额外的包,请参见 细节。不支持python 2.x。

使用它

获取帮助

pwmanager -h

附加-h:

pwmanager add -h

存储密码

为帐户添加密码 host.company.com到数据库:

pwmanager add host.company.com root secretpass

如果您漏掉secretpass,pwmanager将提示您输入 密码。

检索密码

检索上面存储的密码:

pwmanager get host.company.com root

注意pwmanager get同时将主机名和用户名作为子字符串和 如果不指定用户名,它将列出所有帐户,因此 将找到上述帐户(可能还有其他帐户):

pwmanager get host.company.com roo
pwmanager get host.company.com oot
pwmanager get host.company.com r
pwmanager get host.company.com r
pwmanager get host.company.co
pwmanager get com
pwmanager get h

与他人同步

当存在 原点已配置Git远程。如果您 克隆已存在的存储库,但如果 自行初始化或使用pwmanager init

要在以后添加远程存储库,请使用普通的git方式:

cd /path/to/datastore
git remote add origin URL

在正常操作中,pwmanager将在执行任何操作之前,始终获取 在最新的origin/master上重新定位,并将推至origin/master 事后。如果有多个人,它也会重试5次 是在一个平衡的比赛和推动的同时。但是,如果你刚刚添加了一个 新原点遥控器手动运行是个好主意:

git fetch origin
git rebase origin/master

如果上面两个命令中的任何一个失败,您需要修复git所抱怨的任何问题 about或pwmanager不工作。

密码是如何存储的?

也就是当脚本不起作用并且您迫切需要密码时)

所有密码都存储在datadir中的单独文件中,每个密码一个。 它们使用gnupg加密到您配置使用的所有密钥,因此如果您 在本地gnupg密匙环中提供合适的密钥,您需要 "主机"上"用户"的密码,只需运行gnupg即可:

pip3 install --user pwmanager
0

如果失败,请确保gnupg钥匙圈中有您的密钥。

你问,为什么每个密码都在一个单独的文件中?因为这样可以 在没有访问任何密钥的情况下替换单个密码。这个 例如,允许自动密码循环。

故障排除

解密失败

gnupg可能找不到您的密钥。确保你的密钥是 在~/.gnupg中的标准钥匙圈中提供,并且您正在运行 最新GNUPG 2.x系列。

对于Debian Stretch,您需要从 伸展后端口。

如果系统默认为gnupg 1.x,而gnupg 2.x二进制文件称为gpg2, 在pwmanager.conf的[gnupg]部分中设置gpg路径=gpg2

运行时错误:没有要加密的收件人!

您没有在pwmanager.conf中添加任何密钥指纹,也没有 已配置任何其他数据源。没有配置为 加密到。

"我根本不知道如何让LDAP工作"

pwmanager当前假设您有一个组(objectclass:posixgroup)具有 每个成员的memberuid属性。这些应该与你拥有的 在pwmanager.conf中设置为user_attr

接下来,pwmanager假设用户拥有您设置为key_attr的属性, 它应该是pgp keyserver兼容项的dn,位于key\u dn下, 通常ou=pgp keys,dc=company,dc=com

同一LDAP服务器必须能够充当与PGP兼容的密钥服务器(提示: gpg--send keys应该有效)。另外,不要忘记取消注释 [ldap]header inpwmanager.conf

已知问题

  • pwmanager不调用mlock(),主要是因为这样做需要 为整个~5 MB Python二进制文件调用mlock()

  • pwmanager当前不支持多个git远程。那应该 可能会实施,原因有很多。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ZK我们可以保存Windows组件状态吗?   java中的xpath比较路径   将字符串解析为长字符串时出现java数字格式异常   Apache CXF中获取异常中的服务器stacktrace的java问题   java我正在用j2me编程,我需要用丰富的格式编写文本以获得帮助屏幕   Android Room数据库中id字段的java名称字段约定   对于API9,java ArrayList<HashMap<String,String>>无法正确转换为JSONArray   api是最初的Java理想死了吗?   opencv java中的python掩码图像   java为什么在实现克隆方法时返回super。克隆()不是此克隆()   java HttpUrlConnection是否存在并发惩罚?   有没有办法将java arraylist对象复制到codemodel生成的源代码中?