从用户空间进行 cryptsetup 加密,可能作为普通用户

从用户空间进行 cryptsetup 加密,可能作为普通用户

我有责任创建一个包格式,其内容被压缩和加密并且可以安装。

我将其建模为嵌入 cryptsetup 原始设备中的 squashfs。

唉,这使我无法从 jenkins 等构建服务器构建这样的包,因为我需要 root 访问权限才能设置 cryptsetup。在 docker 容器内执行相同的操作也不起作用,因为 docker 对于设备映射器来说不是透明的。

所以我有以下选择:

  1. 仅在构建服务器上创建squashfs并“手动”完成cryptsetup层
  2. 以某种方式在没有内核参与的情况下进行 cryptsetup 加密。

由于 1. 会在流程中添加另一个步骤,因此我更愿意执行类似 2. 的操作。

为了更容易理解一点:

目前,我做了一些类似的事情

mksquashfs <sources> tempfile -noappend
<determine the size of tempfile>
<create "outfile" file with said size> 
cryptsetup open -q -d keyfile outfile <my-dm-device>
mksquashfs <sources> /dev/mapper/<my-dm-device> -noappend
cryptsetup close <my-dm-device>

我想将其简化为

mksquashfs <sources> tempfile -noappend
user_space_crypt_create -q -d keyfile tempfile outfile

其中 user_space_crypt_create 只是将未加密的临时文件转换为(原始)加密的输出文件,稍后可以通过 cryptsetup 将其安装在目标系统上。

有这样的事情存在吗?

相关内容