我尝试在系统启动时自动挂载磁盘。我使用 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
它。sda3
name_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/