Debian 文件系统加密与解密实用指南
一、方案总览与选择
- LUKS/dm-crypt:面向分区/整盘/逻辑卷的块设备加密,系统级、透明、适合长期挂载的数据盘或系统盘(配合 LVM 更灵活)。
- eCryptfs:用户态堆叠加密,适合对已有目录做透明加密,配置简单,常用于用户主目录。
- EncFS:用户态 FUSE 加密,目录级、上手快,适合按需挂载的私密目录。
- GnuPG:文件/归档级加密,适合单文件、小批量传输与备份,支持公钥与对称加密。
- VeraCrypt:跨平台容器/分区加密,适合与 Windows/macOS 互通的加密卷。
以上工具在 Debian 均可安装使用,选择取决于是否需要整盘透明加密、是否要保留现有分区结构、是否需要跨平台等。
二、LUKS 分区或整盘加密与解密(推荐)
- 安装工具
sudo apt update && sudo apt install cryptsetup
- 加密分区(示例:/dev/sdX)
sudo cryptsetup luksFormat /dev/sdX
提示:输入并妥善保存高强度口令;此操作会清空目标设备数据。
- 打开并映射
sudo cryptsetup open /dev/sdX my_encrypted
映射设备为:/dev/mapper/my_encrypted
- 格式化并挂载
sudo mkfs.ext4 /dev/mapper/my_encrypted
sudo mount /dev/mapper/my_encrypted /mnt/encrypted
- 卸载与关闭
sudo umount /mnt/encrypted
sudo cryptsetup close my_encrypted
- 开机自动解锁与挂载(可选)
- 获取解锁密码的密钥文件(如 /etc/keyfile),权限设为 600:
sudo dd if=/dev/urandom of=/etc/keyfile bs=4096 count=1
sudo chmod 600 /etc/keyfile
sudo cryptsetup luksAddKey /dev/sdX /etc/keyfile
- 编辑 /etc/crypttab:
my_encrypted /dev/sdX /etc/keyfile luks
- 编辑 /etc/fstab:
/dev/mapper/my_encrypted /mnt/encrypted ext4 defaults 0 2
说明:若不使用密钥文件,也可在启动时交互输入口令;使用密钥文件可实现无人值守开机,但需确保密钥文件安全。
三、目录级透明加密 eCryptfs 与 EncFS
- eCryptfs(用户态堆叠加密,适合用户目录)
- 安装:sudo apt install ecryptfs-utils
- 挂载:sudo mount -t ecryptfs ~/encrypted ~/encrypted
首次挂载会交互选择加密算法、密钥方式等;记住所选参数以便后续挂载。
- 卸载:sudo umount ~/encrypted
提示:eCryptfs 与桌面会话集成良好,适合对 ~/Private 等目录加密。
- EncFS(FUSE,目录对目录)
- 安装:sudo apt install encfs
- 准备目录:mkdir -p ~/encrypted ~/decrypted
- 挂载:encfs ~/encrypted ~/decrypted(按向导设置密码/参数)
- 卸载:fusermount -u ~/decrypted
提示:EncFS 上手快,但安全性依赖配置与密码强度;适合临时或按需挂载的私密数据。
四、文件级加密 GnuPG 与 OpenSSL
- GnuPG(公钥或对称加密)
- 公钥加密(收件人解密):
gpg --output file.gpg --encrypt --recipient user@example.com file
- 对称加密(口令解密):
gpg --output file.gpg --symmetric --cipher-algo AES256 file
- 解密:
gpg --output file --decrypt file.gpg
- OpenSSL(对称加密,快速命令行)
- 加密:
openssl enc -aes-256-cbc -salt -in file -out file.enc -pass pass:YourPass
- 解密:
openssl enc -d -aes-256-cbc -in file.enc -out file -pass pass:YourPass
说明:GPG 更适合长期归档与共享;OpenSSL 适合脚本与临时加密,口令切勿硬编码在命令行历史中。
五、注意事项与最佳实践
- 备份与演练:加密前备份重要数据;首次配置建议全流程演练,确认口令/密钥可用。
- 口令与密钥管理:使用高强度口令;如需自动挂载,采用密钥文件并做好权限(如 600)与离线备份。
- 性能与开销:加密/解密会消耗一定 CPU,对大文件/高 I/O 场景建议选用硬件加速或合理调度。
- 自动挂载安全:启用 /etc/crypttab + /etc/fstab 可实现开机解锁,但请确保密钥文件安全,避免物理接触即可获取明文的风险。
- 工具选择:整盘/分区级优先 LUKS/dm-crypt;目录级透明加密选 eCryptfs/EncFS;文件级归档与传输选 GnuPG。