加密 ZFS 更改 rpool 密码

加密 ZFS 更改 rpool 密码

我已经在 ZFS 上安装了 Ubuntu 20.10 并启用了加密,现在我想更改用于启动计算机的密码。

我该怎么做呢?

$ zfs get keylocation,encryption,keyformat rpool
NAME   PROPERTY     VALUE                                  SOURCE
rpool  keylocation  file:///run/keystore/rpool/system.key  local
rpool  encryption   aes-256-gcm                            -
rpool  keyformat    raw                                    -

答案1

据我所知,正确答案是

$ sudo cryptsetup luksAddKey /dev/zvol/rpool/keystore

添加新密码

$ sudo cryptsetup luksRemoveKey /dev/zvol/rpool/keystore

并删除旧的

答案2

这比这容易多了。

zfs change-key -o keyformat=passphrase rpool

答案3

如上所述,Ubuntu 20.04-21.10 在 zfs 卷上使用 luks 卷,该卷是存储用于解锁 zfs 池的 256 位密钥


如果您有密码:

cryptsetup luksChangeKey /dev/zvol/rpool/keystore 
输入要更改的密码:
输入新密码:
验证密码:

如果你不是有密码:

你要做的是将此密钥存储在不同的 已知密码

  1. 如果 luks 卷已打开,则有可能
  2. 如果 luks 卷未打开,并且您没有系统密钥文件,游戏结束了,重新安装
  3. 我们无法更改或删除密码,但可以创建一个具有已知密码的新 luks 容器并存储可访问的系统密钥那里

该密钥可以在正在运行的系统上显示:

od --address-radix=x --format=x1 /run/keystore/rpool/system.key
0000000 4a 19 54 d0 b6 ac 38 a7 0d 41 f3 02 c7 05 db 82
0000010 03 18 d5 d5 cb dc 3c e9 71 0e b6 a8 1b 87 25 68
0000020

基本上这是应该做的:

zfs 创建 -oencryption=off -V500m rpool/keystore2
cryptsetup luksFormat /dev/zvol/rpool/keystore2
警告!
这将不可撤销地覆盖 /dev/zvol/rpool/keystore2 上的数据。
你确定吗?(用大写字母输入‘是’):是
输入 /dev/zvol/rpool/keystore2 的密码:
验证密码:
cryptsetup 打开 /dev/zvol/rpool/keystore2 k2
输入 /dev/zvol/rpool/keystore2 的密码:
mkfs --type ext4 /dev/mapper/k2
mkdir --parents --mode=700 /mnt/f/k
挂载 /dev/mapper/k2 /mnt/f/k
cp --archive --no-clobber /run/keystore/rpool/system.key /mnt/f/k
卸载/mnt/f/k
cryptsetup 关闭 k2

从具有适当安装的其他安装(如 Ubuntu 桌面 USB 介质)重新启动文件系统命令,然后类似:

zpool 导入
   池:rpool
    编号:2704475622193776801
# 如果你已经有一个 rpool,可能会列出一些有用的 ID
zpool 导入 2704475622193776801 rpool2
zfs 重命名 rpool2/keystore rpool2/keystore-nopwd
zfs 重命名 rpool2/keystore2 rpool2/keystore

再次掌管一切

相关内容