我有许多用户目录,我想通过 eCryptfs 对其进行加密和身份验证。
我正在尝试创建一个新的文件系统,如下所示:
gpg2 --decrypt key.gpg | \
sudo mount -t ecryptfs -o key=passphrase:passphrase_passwd_fd=0 \
/home/naftuli/.private/Documents/Secure \
/home/naftuli/Documents/Secure
目标是我可以拥有多个加密文件系统,只打开我实际使用的文件系统需要完成后关闭它们,能够备份$HOME/.private
给定文件系统的加密和经过身份验证的文件系统条目,并且能够使用 Syncthing 之类的东西同步这些文件系统,而无需知道里面到底有什么。
创建 eCryptfs 挂载点的过程是什么?到目前为止我还没有成功,收到内核错误:
Error attempting to evaluate mount options: [-22] Invalid argument
Check your system logs for details on why this happened.
Try updating your ecryptfs-utils package, and/or
submit a bug report on https://bugs.launchpad.net/ecryptfs
我使用的是 Ubuntu 16.04,内核 4.4.0。
我找到的教程似乎表明我上面尝试的应该有效,但显然不行。
答案1
- 选项1:使用命名管道
passphrase_passwd_file
代替fd。同时管理标准输入/输出和从管道读取/写入可能是一些挑战(参见https://gist.github.com/korc/15886e50999af9701bad967534e84770)。 - 选项 2:做一些准备并
/sbin/mount.ecryptfs_private
与别名论证(此处xxx
:)。添加密钥和安装实际上是两个独立的过程,通过内核密钥环中的密钥链接(参见keyctl
命令)- 使用 向内核密钥环添加加密密钥
ecryptfs-add-passphrase
。keyctl show
也蛮有用的。如果您使用 pam_ecryptfs,则某些密钥可能已经存在(如果您已完成ecryptfs-setup-private
)。观察内部/usr/bin/ecryptfs-mount-private
也可以给出一些提示。 - 创建
$HOME/.ecryptfs/xxx.conf
和xxx.sig
,参见。man mount.ecryptfs_private
以供参考。简而言之,.conf
文件是类似 fstab 的挂载点描述,并.sig
包含密钥签名(应与keyctl
输出匹配)。 - 用于
/sbin/mount.ecryptfs_private xxx
安装、/sbin/umount.ecryptfs_private xxx
卸载。
- 使用 向内核密钥环添加加密密钥