我正在使用 ext4 加密。 https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption
在我解密一个目录之前,我可以在其中看到很多加密的文件名。
我想复制加密的文件,以便我可以在另一台机器上解密它们。
我可以用 ecryptfs 做到这一点。我如何使用 ext4 加密来做到这一点。
我正在使用 ext4 加密。 https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption
在我解密一个目录之前,我可以在其中看到很多加密的文件名。
我想复制加密的文件,以便我可以在另一台机器上解密它们。
我可以用 ecryptfs 做到这一点。我如何使用 ext4 加密来做到这一点。
您可以看到加密和填充的文件名,但您应该无法读取文件内容。所以试图复制未加密的文件会导致错误,例如:
所以你几乎不应该这样做。实际的答案是解密它,然后复制它。如果您选择一个加密位置作为目标目录,该副本将被重新加密。通过使用 rsync/ssh 的网络,传输也将被加密。所以大多数事情都有效,只是将其存储在云中可能是不可能的。文件系统特定的加密在文件系统之外不起作用。
绕过读取障碍是不够的:与所有元数据都是常规文件的 ecryptfs 不同,ext4 加密涉及隐藏在文件系统本身中的元数据,您不可见,因此您无法轻松复制它。
我发现最接近的是
e4crypt get_policy
,e4crypt set_policy
它允许您使用现有密钥加密目录,而无需知道明文中的实际密钥。但它仅适用于空目录,不适用于文件。您还可以加密保管库目录,用文件填充它,然后将这些文件硬链接到根目录,然后删除保管库目录。您最终会在根目录中获得加密文件(内容)(您不应该对其进行加密)。文件系统只知道文件已加密。(不建议实际这样做。)
如果您无论如何都必须制作副本,我想您可以通过迂回的方式进行:
否则我猜你需要一个专门的工具来知道如何将加密目录+元数据从一个 ext4 文件系统复制到另一个文件系统,但我没有看到使用
e4crypt
or的方法debugfs
。debugfs
特别是似乎没有策略/加密相关功能,除了ls -r
显示加密文件名的全部荣耀,因为\x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axY
这意味着 ASCII 表示常规ls
节目以某种方式编码为可打印。实际文件名 [填充并实际存储在文件系统中] 16 个随机字节,但常规
ls
将其显示为 22 个 ASCII 字符。当您确实需要将其存储为随机字节时,以传统方式复制此类文件将创建一个存储为其 ASCII 字符表示的文件。所以这注定会在这么多层次上失败。tl;博士如果有办法做到这一点,那么我不知道:-}