如何在 systemd 中使用加密交换?

如何在 systemd 中使用加密交换?

我正在使用 CentOS 7。我/etc/crypttab用以下行创建

cryptswap /swap /dev/urandom swap,cipher=aes-cbc-essiv:sha256,nofail

/etc/fstab用线

/dev/mapper/cryptswap none swap sw,nofail 0 0

使用以下命令创建交换文件后

dd if=/dev/zero of=/swap bs=4M count=200

我收到错误消息

systemd-cryptsetup[512]: Failed to activate with key file '/dev/urandom': Operation not supported

systemd[1]: Timed out waiting for device dev-mapper-cryptswap.device.

systemd[1]: Dependency failed for Cryptography Setup for cryptswap.

systemd[1]: Dependency failed for /dev/mapper/cryptswap.

重新启动时。

我做错了什么?

答案1

首先重申/dev/urandom支持和建议crypttab 文档

对于交换加密 /dev/urandom 可以用作密码文件;如果系统没有足够的熵来生成真正随机的加密密钥,则使用 /dev/random 可能会阻止启动完成。

您需要创建交换将驻留在其上的设备,/dev/mapper/cryptswap并将其格式化为交换区域。

# dd if=/dev/zero of=/swap bs=4M count=200
# cryptsetup luksFormat /swap

这里的密码无所谓只要检查通过就可以

# cryptsetup luksOpen /swap cryptswap 

这将创建/dev/mapper/cryptswap您将用于交换分区的分区

# mkswap /dev/mapper/cryptswap

/etc/fstab

/dev/mapper/cryptswap           none    swap    defaults        0 0

激活

# swapon -a

确认

# cat /proc/swaps 

或者

# swapon -s

/dev/mapper/cryptswap注意:您将在这些命令的输出中看到链接到的设备

# ls -l /dev/mapper/cryptswap

相关内容