创建 eCryptfs 文件系统

创建 eCryptfs 文件系统

我有许多用户目录,我想通过 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命令)
    1. 使用 向内核密钥环添加加密密钥ecryptfs-add-passphrasekeyctl show也蛮有用的。如果您使用 pam_ecryptfs,则某些密钥可能已经存在(如果您已完成ecryptfs-setup-private)。观察内部 /usr/bin/ecryptfs-mount-private也可以给出一些提示。
    2. 创建$HOME/.ecryptfs/xxx.confxxx.sig,参见。man mount.ecryptfs_private以供参考。简而言之,.conf文件是类似 fstab 的挂载点描述,并.sig包含密钥签名(应与keyctl输出匹配)。
    3. 用于/sbin/mount.ecryptfs_private xxx安装、/sbin/umount.ecryptfs_private xxx卸载。

相关内容