创建一个新的 LUKS 密钥

创建一个新的 LUKS 密钥

我尝试在系统启动时自动挂载磁盘。我使用 crypttab 并将密码以明文形式保存在文件中。

我的配置:

sda3_crypt UUID=my_id none luks,discard
wd_01 UUID=my_id /luks-keys/wd1 luks,timeout=180
wd-crypt UUID=my_id /luks-keys/wd1

sda3_crypt-->主系统

wd_01——>我想挂载的磁盘

wd-crypt-->luks 分区我想挂载

系统启动后输入主密码系统启动但不加密wd_01。

当我将挂载点添加到 fstab 时,它会发生变化。在启动时,我输入了我的主密码,系统启动后,要求输入 wd_01 的第二个密码,并忽略我在 crypttab 中将他的密码输入到 /root/luks-keys/wd1 的事实 :/

lsblk:

NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                 8:0    0 111.8G  0 disk  
├─sda1              8:1    0   512M  0 part  /boot/efi
├─sda2              8:2    0   954M  0 part  /boot
└─sda3              8:3    0 110.4G  0 part  
  └─sda3_crypt    253:0    0 110.4G  0 crypt 
    ├─main-swap   253:1    0   7.5G  0 lvm   [SWAP]
    └─main-system 253:2    0 102.9G  0 lvm   /
sdb                 8:16   0   1.8T  0 disk  
└─sdb-crypt       253:4    0   1.8T  0 crypt /srv/dev-disk-by-label-wd01
sdc                 8:32   0   1.8T  0 disk  
└─seagate_01      253:3    0   1.8T  0 crypt /srv/dev-disk-by-label-seagate01

wd_01 是我的 sdb,wd-crypt 是我的 sdb-crypt

答案1

首先要说明一下安全问题,您需要保护包含 LUKS 密码或密钥的文件。这可能意味着要为您的 OS 根分区使用加密分区。如果您不保护该文件,加密对您没有多大帮助。

下面,/dev/device-and-part用你的分区(即sda3)替换。

请考虑备份您的数据或说明中修改的任何文件。如果您犯了错误,可能会丢失数据或导致系统无法运行。

创建一个新的 LUKS 密钥

从随机数据创建密钥,确保只有 root 用户有访问权限:

sudo mkdir /etc/luks-keys/
sudo dd if=/dev/urandom of=/etc/luks-keys/name-of-key bs=512 count=8 iflag=fullblock
sudo chown root.root /etc/luks-keys/name-of-key
sudo chmod 400 /etc/luks-keys/name-of-key

现在将密钥与分区关联,您需要在提示符下输入现有密码:

sudo cryptsetup -v luksAddKey /dev/device-and-part /etc/luks-keys/name-of-key

验证是否有效,测试密钥文件:

sudo cryptsetup open -v --test-passphrase /dev/device-and-part --key-file /etc/luks-keys/name-of-key

您现在可以使用密钥文件的密码来解锁加密分区。

解锁并安装

找出分区的 UUID。此唯一 ID 用于在启动时识别分区。

sudo cryptsetup luksDump /dev/device-and-part | grep "UUID"

在我写 UUID_HERE 的地方使用该值。为已安装的卷选择一个名称,例如。我将在说明中使用sda3_crypt它。sda3name_crypt

echo "name_crypt UUID=UUID_HERE /etc/luks-keys/name-of-key luks" | sudo tee -a /etc/crypttab

使用以下方法检查您的配置:

sudo cryptdisks_start  name_crypt

添加到 fstab 以自动挂载:

echo "/dev/mapper/name_crypt /media/path/to/mount ext4 defaults 0 2" | sudo tee -a /etc/fstab

笔记

了解每个命令都是值得的,这样您就可以调试发现的任何问题。man dd man cryptsetup man fstab可以在这里为您提供帮助。我在 Debian 11 上运行了这些说明,相同或类似的方法应该适用于较旧/较新的 Debian 版本、Ubuntu 或类似的操作系统。

答案2

好的,我找到答案:我需要添加 sudo cryptsetup -v luksAddKey

回答:https://blog.tinned-software.net/automount-a-luks-encrypted-volume-on-system-start/

相关内容