使用ldap支持在git支持的加密gnupg数据库中管理密码
pwmanager的Python项目详细描述
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.conf
(pwmanager.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当前假设您有一个组( 接下来,pwmanager假设用户拥有您设置为 同一LDAP服务器必须能够充当与PGP兼容的密钥服务器(提示:
pwmanager不调用 pwmanager当前不支持多个git远程。那应该
可能会实施,原因有很多。pwmanager.conf的
[gnupg]
部分中设置gpg路径=gpg2
运行时错误:没有要加密的收件人!
pwmanager.conf中添加任何密钥指纹,也没有
已配置任何其他数据源。没有配置为
加密到。
"我根本不知道如何让LDAP工作"
objectclass:posixgroup
)具有
每个成员的memberuid
属性。这些应该与你拥有的
在pwmanager.conf中设置为
user_attr
key_attr的属性,
它应该是pgp keyserver兼容项的dn,位于
key\u dn
下,
通常ou=pgp keys,dc=company,dc=com
gpg--send keys
应该有效)。另外,不要忘记取消注释
[ldap]
header inpwmanager.conf
已知问题
mlock()
,主要是因为这样做需要
为整个~5 MB Python二进制文件调用mlock()
。推荐PyPI第三方库