将多个ssh公钥与django用户帐户相关联(django sshkey的fork没有sshd集成)
django-simplesshke的Python项目详细描述
django simpleshkey允许您将多个SSH公钥与django相关联 用户帐户。它提供列出、添加、编辑和删除键的视图,每个键 为最终用户消费。当然,您还可以管理SSH密钥 从管理界面。
SSH密钥简单地存储在Django数据库中,使用它们的方法是 取决于您:您可以有一个cron作业,它定期将ssh密钥转储到文件中,或者 连接信号以在每次保存ssh密钥时执行操作… 例如,作者使用ansible将ssh密钥部署到多台计算机上。
关于django sshkey和django Simpleshkey
django simplesshkey是基于2.5.0版的django-sshkey分支。
这个叉子的目标有两个:
- 只保留管理链接到django的ssh密钥所需的基本功能 用户特别是,与openssh的可选集成 完全移除,简化配置,避免泄漏 默认情况下的信息(公共查找视图)。另外,发送电子邮件时 添加或修改密钥不再进行,因为它可以很容易地 在此应用程序之外实现。
当然,如果你需要django sshkey的所有额外功能,你应该 继续使用
从django sshkey迁移
如果您使用的是django sshkey,但不需要额外的功能,那么 可以开始使用django simpleshkey并导入数据。
迁移过程有点复杂,有关详细信息,请参见README.upgrading.rst
django应用程序
要在django项目中使用django sshkey,只需将django_sshkey添加到 INSTALLED_APPS在settings.py中,将url映射到项目中,然后 为视图提供模板(示例模板在源代码中提供)。
url配置
此文本假定项目的urls.py映射simplesshkey.urls 进入URL命名空间,如下所示:
urlpatterns = [ ... url('^sshkey/', include('simplesshkey.urls')), ... ]
如果使用不同的URL,则需要在下面的示例中调整URL 地图绘制。
设置
- SSHKEY_AUTHORIZED_KEYS_OPTIONS
- 字符串,可选。定义每个 公钥。{username}将被用户名替换;{key_id} 将替换为密钥的id。版本2.3中的新项。
- SSHKEY_ALLOW_EDIT
- 布尔值,默认为False是否允许编辑密钥。 版本2.3中的新功能。
- SSHKEY_DEFAULT_HASH
- 字符串,可以是sha256、md5或legacy(默认值)违约 用于计算密钥指纹的哈希算法遗产 行为强制OpenSSH的MD5 6.8之前的行为,而不使用MD5: 前缀。版本2.5中的新功能。
模板
示例模板位于templates.example目录中。
- sshkey/userkey_list.html
- 列出用户密钥时使用。
- sshkey/userkey_detail.html
- 用于添加或编辑用户密钥。
管理命令
- import_sshkey [--auto-resolve][--prefix PREFIX] [--name NAME] USERNAME KEY_PATH ...
- 导入SSH公钥以绑定到用户如果给定--auto-resolve/-a, 尝试使用uuid生成唯一的密钥名。期间使用的前缀 此进程是密钥名,但可以使用--prefix/-p更改。
- normalize_sshkeys [USERNAME KEY_NAME]
- 重新计算关键数据以反映更改的设置,例如,如果 更改的SSHKEY_DEFAULT_HASH和某些密钥中的指纹不正确 你的数据库。如果没有参数,所有键都将被规范化。用户名 asnd密钥名是可选的,如果指定了,则会将受影响的密钥限制为 由用户或用户的特定密钥拥有的这也可以做到 通过管理小组,但如果你有一个猪油密钥数据库 请求可能会超时。