ssh密钥的自动加载程序

sshadder的Python项目详细描述


https://github.com/mvk/sshadder/raw/master/logo.200x200.png

关于

https://travis-ci.org/mvk/sshadder.svg?branch=master

ssh密钥管理器,用于当前用python编写的多个受密码保护的私钥。 停止手动添加。

它的作用

定义密钥包并允许将包中的所有密钥添加到正在运行的ssh代理 在某种程度上,它就像GNU_Keychain,但并不强迫您输入所有密码,谢谢@jamiesonbecker!

它不

  • 图形桌面、消息传送、L&D-BUS等
  • 与真正的私钥管理器竞争,比如SeahorseLastPassKeePass
  • 管理ssh-agent

安装

在virtualenv中运行:

pip install sshadder

注意:加密路径尚未被检查,所以暂时不要在整个系统范围内安装。老实说:)

用法

先决条件:

以便sshadder可以工作,我们需要:

  • ssh-agent
  • 的运行过程
  • 环境变量SSH_AUTH_SOCK指向正在运行的进程

设置:

运行:

sshadder -i

文本将引导您提供主密码(不保存在任何地方),然后对于要添加的每个密钥,输入:

  • 文件路径
  • 密码

完成后,选择“s”选项保存并退出。

经常使用:

运行:

sshadder

请参考--help,其中显示了它正在查找json文件的默认位置。

实际发生的情况

在正常模式下调用时,sshadder是:

一。检查ssh代理环境变量指向一些有用的东西 一。正在对配置文件.sshagent.json项进行迭代,并正在添加已添加的密钥。

密钥密码是加密的,因此主密码用于解密它们以将它们添加到正在运行的代理中。 每个密码都经过加密,然后使用Base64编码并添加到密钥项中。 文本文件保持原样-文本文件。

不知道它有多安全,但它比纯文本shell脚本更安全。

透明度

pexepect.spawn()被使用,这意味着: 在添加密钥时能够访问用户的/proc文件系统可能会允许未经授权访问您的密码。 攻击者可能会“嗅探”文件描述符以查看传递给ssh代理的每个密钥的密码。 如果这对您非常不安全,请发送修补程序/拉取请求:)

如果安全专家正在阅读这些行,我想学习如何避免这种情况

贡献

欢迎使用补丁/拉/功能请求来改进代码/修复错误。 注意,我是一个很忙的人,所以如果你可以修复/添加它-给我一个补丁/拉请求。

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

推荐PyPI第三方库


热门话题
Java循环来评估所有运算符   spring@Value>无法转换“java”类型的值。lang.String“to required type”java。lang.Integer'   注册表为什么我又找不到Java SE运行时环境了?   java Intellij Spring启动运行配置   多线程如何在Java中从工作线程访问主线程?   groovy在grails应用程序中使用java代码会导致编译永无止境的循环   java从我使用switch的方法中获取2d数组   java在JVM内存的方法区域中有非静态和静态区域吗?   java验证正则表达式匹配器。find()找不到准确的键和值   java地理定位API和在半径内查找用户   java如何在正则表达式中使用逗号作为结束点?   更新关系时java Update@LastModifiedDate   数组如何在java中从同一个包中的另一个类访问变量   JVM规范和Java编译器代码对SCJP准备有用吗?   java liquibase如何获取hibernate事务?   java如何在jersey client 1.8中处理读取超时异常