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

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

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

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

编辑

好吧,我理解使用用户ssh密钥这样的东西是个坏主意.

相反,我现在只使用base64编码,如下所述:

How does one encode and decode a string with Python for use in a URL?

当有人读我的python脚本时,当然不能保存.但它对我来说足够了,不必将密码保存为纯文本.

解决方法:

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

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

>我需要存储密码,所以我会对其进行加密

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

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

我同意不以纯文本格式存储密码有一些好处,以防止有人以root用户身份登录:

cat secret-password

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

password = decrypt-password(data)

并添加以下行:

print "The user's password is",password

像os.fchown()这样的东西可以保护文件,就像创建具有正确权限的文件一样.

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

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

标签:python,ssh-keys

来源: https://codeday.me/bug/20190526/1157649.html

python 秘钥_python – 使用ssh密钥加密和解密密码相关推荐

  1. python 秘钥_python 生成ssh秘钥对

    工作中要用到ssh-keygen生成的公钥和私钥,查了很多网站,大部分人用的是Crypto.PublicKey包中的RSA类来模拟ssh-keygen生成秘钥对.偶然间发现paramiko也有一个可以 ...

  2. git 查看自己秘钥_gitlab配置ssh密钥及简单使用

    演示环境:当前系统Centos6.9,使用IP192.168.0.80 修改gitlab仓库地址 编辑gitlab.yml文件 vim /opt/gitlab/embedded/service/git ...

  3. 如何知道linux的ssh秘钥是否匹配,SSH密钥验证

    [SSH登录两种方式验证] (一):用户名密码验证    说明: 1.客户机向服务器发送SSH连接请求 2.服务器收到请求,发送一个公钥给客户机 3.客户机收到公钥,对输入的用户名密码进行加密返回给服 ...

  4. Linux、Windows、Mac非root普通用户使用秘钥免密SSH登录

    目录 Mac/Linux连Linux Mac/Linux连Windows Windows连Linux 前言 一般买来的服务器都是给你root用户,但实际上安全隐患太大.比如我自己的服务器给实验室搭个跳 ...

  5. python sftp模块_python实现ssh及sftp功能(实例代码)

    1.在Linux上我们通过scp命令实现主机间的文件传送,通过ssh实现远程登录 ,比如 我们经常使用的xshell远程登录工具,就是基础ssh协议实现window主机远程登录Linux主机 下面简单 ...

  6. xshell 秘钥连接_Xshell使用密钥方式登陆

    基于Xshell使用密钥方式连接远程主机 连接远程主机,就验证身份而言,一般有两种方式,一种是通过用户密码:另一种通过公钥的方式(Public Key). S}BQ$AONT4`UT9Z6%S[O]2 ...

  7. python常用加密算法_python 三个常用加密 base64,md5,sha1

    做比赛的经常会用到这三个算法 今天集合在一起 [python] import hashlib import base64 s = 'justforfun' print s for i in range ...

  8. python中base64加密字典_python中的base64加密和解密

    import base64 import json def row_data(): content = { "buyer_nick": "家有亲亲", &quo ...

  9. iOS安全之RSA加密/生成公钥、秘钥 pem文件

    在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...

  10. iOS RSA加密 以及生成公钥 秘钥 pem文件

    在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...

最新文章

  1. 一文读懂语音识别技术原理
  2. java 入门 第三季1
  3. java修饰符总结,java访问修饰符总结
  4. linux双网卡端口聚合,Linux双网卡聚合改造
  5. UVA-714 二分
  6. PureCode--iOS--自定义UITableViewCell(含疑问)
  7. (原创)sqlite封装库SmartDB1.3发布
  8. docker没有下载完全_一个时代的结束:苹果正式关闭iTunes,但歌曲下载并没有完全消失...
  9. MDESIGN-设计标准化系统
  10. 开源掌机芯片方案对比
  11. 到底买苹果XS还是XR_苹果xs和苹果xr内部相爱相杀:队友之间该如何选择?
  12. 我是CTO,我为CEO吹过的牛逼买单!
  13. Transitive attribute传递属性
  14. EPSON1100清零软件 在哪有?
  15. 你们能送我一句加油的话吗?
  16. BLDC反电动势的一些知识点
  17. 锁屏界面提示某些设置已隐藏_息屏还有这些“骚操作”,华为这几个隐藏小功能快用起来...
  18. 华为机试:胡杨树补种
  19. 月收入一万的你,月底可以攒多少钱?
  20. VUE Module build failed: TypeError: this.getOptions is not a function at Object.loader 解决办法

热门文章

  1. Nginx实战基础篇七 最新源码包通过脚本部署LAMP搭建Discuz论坛
  2. Ryu控制器正则表达式字符串 r'[0-9]{1,4}|all' 分析
  3. [HTML] Prettify 代码高亮使用总结
  4. BZOJ3687 简单题
  5. c语言qsort函数对结构体的一级排序,sort和qsort函数对结构体的二级排序
  6. c ringbuffer 源码_Python Ring Buffer的实现
  7. python thread start_Python中Thread类的start和run方法的区别
  8. php创建可读文件,php – 我需要一个人类可读的,可解析的文件格式
  9. 简述python2.x和python3.x的区别_python面试题Python2.x和Python3.x的区别
  10. python编程题字符串的美化_Python编程题15--RGB字符串排序