当前位置:  开发笔记 > 编程语言 > 正文

使用ssh密钥加密和解密密码

如何解决《使用ssh密钥加密和解密密码》经验,为你挑选了1个好方法。

我的python脚本(Python 2.6,在Debian Linux上)要求用户输入密码,然后将其保存在用户主目录中.

因为我不想将密码作为纯文本保护,我想以某种方式加密它.所以我想也许我可以使用用户的(私有)ssh-key来加密和解密保存在文件中的密码,这样只有一个访问私有ssh密钥的人才能解密保存的密码.

为此使用私有ssh密钥是个好主意吗?如何在python中使用密钥加密字符串?

(顺便说一句,我不想​​使用密钥环和类似的东西)

编辑

好吧,我理解使用用户ssh密钥这样的东西是个坏主意.相反,我现在只使用base64编码,如下所述: 如何使用Python对字符串进行编码和解码以在URL中使用? 当有人读我的python脚本时,当然不能保存.但它对我来说足够了,不必将密码保存为纯文本.



1> Dave Webb..:

绝对值得做的唯一事情是存储只有用户可以阅读的文件.

您使用ssh键的参数似乎如下所示:

    我需要存储密码,所以我会加密它

    如果我使用用户的ssh密钥进行加密,这将阻止有人解密密码,即使他们拥有我的脚本源,因为只有用户可以读取他们的ssh密钥.

如果将加密密码存储在文件中,只有用户可以读取,您将获得与使用ssh密钥相同的好处,而无需费心阅读用户的ssh密钥.

我同意不以纯文本形式存储密码以防止有人登录时有一些好处root:

cat secret-password

获取密码但记住在Python脚本中找到行说法很容易:

password = decrypt-password(data)

并添加以下行:

print "The user's password is",password

类似于os.fchown()保护文件的技巧,就像创建具有正确权限的文件一样.

您可以base64对密码进行编码,使其不是纯文本,但如果我们假设攻击者可以读取和编辑您的脚本,则唯一可以保护用户的是攻击者无法读取包含加密密码的文件.

如果您真的担心这一点,只需在每次运行脚本时提示用户输入密码.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有