所有计划

密钥加密,始终如此

环境变量使用 AES-256-GCM 静态加密。构建时和运行时分离。批量操作。两种编辑模式。密钥永远不会以明文形式写入磁盘。

为安全优先的团队而构建

加密存储、基于角色的访问控制以及适用于每种工作流的两种编辑模式。

AES-256-GCM 加密
主密钥通过 PBKDF2 派生,迭代 100k 次。每个文件使用随机 nonce。
构建时与运行时
标记变量在构建时、运行时或两者皆可用。细粒度控制。
两种编辑模式
键值列表编辑器用于结构化编辑,原始 .env 编辑器用于批量粘贴。
自动生成 URL
数据库连接字符串自动生成(postgres://user:pass@host:port/db)。
RBAC 访问控制
查看者无法看到值。开发者可以查看。管理员可以编辑。基于角色的控制。
批量操作
单个 PUT 请求批量更新多个变量。一次导入整个 .env 文件。

工作原理

01

添加变量

键值对、粘贴 .env 文件内容,或让 sh0 从数据库自动生成连接字符串。

02

标记范围

选择每个变量在构建时、运行时还是两者都可用。构建时变量在 docker build 期间注入。

03

静态加密

AES-256-GCM 加密,每个文件使用随机 nonce。密钥永远不会以明文形式写入磁盘。解密仅在注入时进行。

04

部署时注入

变量在运行时解密并注入到容器环境中。容器内没有 .env 文件。

加密流水线

添加变量
PBKDF2 密钥派生
AES-256-GCM 加密
加密存储
部署时解密

明文仅在注入时存在于内存中 -- 永远不会以未加密形式写入磁盘

一应俱全

AES-256-GCM 加密

行业标准的认证加密。主密钥通过 PBKDF2 派生(100k 次迭代)。每个文件使用随机 nonce,每个块独立派生密钥。

默认遮蔽

变量值在仪表盘中默认隐藏。查看需要开发者或更高角色。屏幕共享时不会意外暴露。

构建与运行时分离

构建时变量在 docker build 期间可用。运行时变量注入到运行中的容器。也可同时使用。

两种编辑模式

键值编辑器用于结构化管理。原始 .env 编辑器用于粘贴整个文件。两者可自由切换。

自动生成连接字符串

部署 PostgreSQL、MySQL 或 MongoDB 数据库后,sh0 自动生成连接 URL。一键添加到您的应用中。

RBAC 访问控制

查看者只能看到变量名。开发者可以查看值。管理员可以创建、编辑和删除。细粒度的团队控制。

传统方式

  • x .env 文件以明文形式放在服务器上
  • x 手动在环境之间复制粘贴
  • x 没有加密 -- 任何有 SSH 访问权限的人都能读取
  • x 没有审计追踪谁改了什么
  • x 意外提交到版本控制
  • x 手动拼装数据库 URL

sh0 的方式

  • AES-256-GCM 静态加密
  • 批量导入和应用级范围
  • RBAC 控制:查看者、开发者、管理员
  • 默认遮蔽,查看需要权限
  • 永不提交 -- 在仪表盘或 API 中管理
  • 自动生成数据库连接 URL

常见问题

使用什么加密算法? +
AES-256-GCM(Galois/Counter Mode),主密钥使用 PBKDF2 派生,迭代 100,000 次。每个文件使用唯一的随机 nonce。这与主要云提供商使用的标准相同。
谁可以查看变量值? +
取决于您的角色。查看者可以看到变量名但看不到值。开发者可以查看值。管理员拥有完全控制权,包括创建、编辑和删除。所有访问都在服务端强制执行。
如何迁移现有的 .env 文件? +
在仪表盘中打开原始 .env 编辑器并粘贴现有 .env 内容。sh0 会解析并为每个条目创建加密变量。您也可以通过 API 使用 PUT 请求进行批量更新。
变量数量有限制吗? +
没有硬性限制。每个应用都有独立的环境变量集。实际上大多数应用使用 10-50 个变量,但 sh0 可以处理数百个。

您的密钥不应该是明文存储的。

AES-256-GCM 加密、基于角色的访问控制、批量操作和自动生成的数据库 URL。所有计划均包含。