首次在 Beelink Mini PC (SEi12) 上安装 Ubuntu Server 22.04.2 LTS。尽可能采用最标准的安装。使用引导式存储布局进行配置;即
- 使用整个磁盘
- 将此磁盘设置为 LVM 组
- 使用 LUKS 加密 LVM 组
安装后,我将 Mini PC 移到地下室,因为我想让它以无头模式运行。我遇到的第一个问题是想知道为什么安装后我的 DHCP 没有分配 IP,然后意识到,呃,我需要解密。开始在谷歌上搜索远程解密的最佳方法,dropbear SSH,偶然发现了 systemd-cryptenroll,注意到 Yubikey 支持。然而,尽管我进行了所有的谷歌和 ChatGPT 搜索;我似乎无法弄清楚如何正确配置它以进行 Yubikey 解密。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.3M 1 loop /snap/core20/1822
loop1 7:1 0 111.9M 1 loop /snap/lxd/24322
loop2 7:2 0 49.8M 1 loop /snap/snapd/18357
nvme0n1 259:0 0 465.8G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot/efi
├─nvme0n1p2 259:2 0 2G 0 part /boot
└─nvme0n1p3 259:3 0 462.7G 0 part
└─dm_crypt-0 253:0 0 462.7G 0 crypt
└─ubuntu--vg-ubuntu--lv 253:1 0 100G 0 lvm /
在启动时,它特别要求我输入密码来解密 dm_crypt-0,但是当使用 cryptenroll /dev/nvme0n1p3 是唯一有效的 /dev 时,我无法定位 dm_crypt-0
我一直在关注这个:https://www.freedesktop.org/software/systemd/man/crypttab.html具体来说:
Example 3. FIDO2 Volume Unlocking Example
The FIDO2 logic allows using any compatible FIDO2 security token that implements the "hmac-secret" extension for unlocking an encrypted volume. Here's an example how to set up a FIDO2 security token for this purpose for a LUKS2 volume, using systemd-cryptenroll(1):
# SPDX-License-Identifier: MIT-0
# Enroll the security token in the LUKS2 volume. Replace /dev/sdXn by the
# partition to use (e.g. /dev/sda1).
sudo systemd-cryptenroll --fido2-device=auto /dev/nvme0n1p3
# Test: Let's run systemd-cryptsetup to test if this worked.
sudo /usr/lib/systemd/systemd-cryptsetup attach mytest /dev/nvme0n1p3 - fido2-device=auto
# If that worked, let's now add the same line persistently to /etc/crypttab,
# for the future.
sudo bash -c 'echo "mytest /dev/nvme0n1p3 - fido2-device=auto" >>/etc/crypttab'
sudo systemd-cryptenroll --fido2-device=auto /dev/nvme0n1p3