跳转到主要内容

将多个SSH公钥与Django用户帐户关联(django-sshkey的分支,没有SSHD集成)

项目描述

django-simplesshkey 允许您将多个SSH公钥与Django用户帐户关联。它提供了用于列出、添加、编辑和删除密钥的视图,每个视图都旨在供最终用户使用。当然,您也可以通过管理界面管理SSH密钥。

SSH密钥简单地存储在Django数据库中,您如何使用它们取决于您:您可以设置一个cron作业,定期将SSH密钥导出到文件,或者连接一个信号,每次保存SSH密钥时执行操作……例如,作者使用Ansible将SSH密钥部署到多台机器

关于django-sshkey和django-simplesshkey

django-simplesshkey 是基于 django-sshkey 的分支,基于2.5.0版本。

这个分支的目标有两个

  • 仅保留管理与Django用户关联的SSH密钥所需的基本功能。特别是,与OpenSSH的可选集成已被完全删除,这简化了配置并避免了默认情况下泄露信息(公开查找视图)。此外,当添加或修改密钥时不再发送电子邮件,因为这可以很容易地在应用程序外部实现。

  • 更灵活:对模型施加更少的约束(无唯一性),允许覆盖模型或表单的一些字段。此外,在应用程序外部发送电子邮件显然提供了更大的灵活性。

当然,如果您需要使用 django-sshkey 的所有额外功能,您应该继续使用它!

从 django-sshkey 迁移

如果您正在使用 django-sshkey 但不需要额外功能,您可以使用 django-simplesshkey 并导入您的数据。

迁移过程有些复杂,请参阅 README.upgrading.rst 获取详细信息。

Django 应用

要在您的 Django 项目中使用 django-sshkey,只需将 django_sshkey 添加到 settings.py 中的 INSTALLED_APPS,将 URL 映射到您的项目中,并为视图提供模板(示例模板在源代码中提供)。

URL 配置

以下文本假设您的项目的 urls.pysimplesshkey.urls 映射到以下 URL 命名空间

urlpatterns = [
  ...
  url('^sshkey/', include('simplesshkey.urls')),
  ...
]

如果您使用不同的映射,您需要调整以下示例中的 URL。

设置

SSHKEY_ALLOW_EDIT

布尔值,默认为 False。是否允许编辑密钥。

SSHKEY_DEFAULT_HASH

字符串,可以是 sha256md5legacy(默认)。用于计算密钥指纹的默认哈希算法。结果哈希存储在每个 SSH 密钥对象的 fingerprint 字段中。旧版行为强制执行 OpenSSH 6.8 之前的 MD5,没有 MD5: 前缀。

模板

示例模板可在 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 并且数据库中某些密钥的指纹不正确。如果没有提供参数,则所有密钥都将进行标准化。用户名和密钥名称是可选的,如果指定,则限制受影响的密钥为用户拥有的密钥或特定用户的密钥。这也可以通过管理面板完成,但如果您有一个大的密钥数据库,请求可能会导致超时。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

django-simplesshkey-2.1.0.tar.gz (16.5 kB 查看散列)

上传时间

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面