如何通过命令行或脚本最好地加密和解密目录?

van*_*den 8 command-line security encryption

我在 bazaar 版本控制下有一个文本文件目录,并在我的每台机器上保留一个副本(实际上是一个分支)。我想通过命令行加密和解密目录。

理想情况下,我还可以在注销时运行脚本来检查目录是否已加密,如果未加密,则对其进行加密,所有这些都无需用户干预。但是,我不希望在登录时解密目录。(我希望脚本可以防止忘记手动加密。这对上网本尤其重要。)

我正在运行ubuntu 10.04.1crunchbang linux 的两个版本,一个是ubuntu 9.04Debian Squeeze 存储库 6 月下旬快照的衍生版本。

做这个的最好方式是什么?

(我尝试用encryptionand标记directories,但缺少创建标记的代表。)

dsp*_*dsp 5

您对机器有管理权限吗?可以使用加密的环回设备。例子:

为加密的 fs 创建一个容器文件:

dd if=/dev/urandom of=container bs=1024k count=100 
Run Code Online (Sandbox Code Playgroud)

将容器文件绑定到环回设备 0:

losetup container /dev/loop0
Run Code Online (Sandbox Code Playgroud)

创建加密设备(-y 要求输入密码两次;行由 分割\):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 
Run Code Online (Sandbox Code Playgroud)

在加密设备上创建 ext2 文件系统(可以真正使用任何东西):

mkfs.ext2 /dev/mapper/container
Run Code Online (Sandbox Code Playgroud)

将加密的文件系统挂载到 crypt 目录:

mount /dev/mapper/container crypt
Run Code Online (Sandbox Code Playgroud)

以供参考:

man cryptsetup && man losetup
Run Code Online (Sandbox Code Playgroud)

此外,请阅读密码学最佳实践,了解有关选择要使用的密码和密钥长度等的信息。


Bra*_*sed 3

使用gpgdir怎么样?这应该可以编写用于登录和注销的脚本。您还可以选择应该加密的子目录(.bash_rc例如,您可能希望诸如此类的文件保持解密状态)。

另一种选择可能是Truecrypt。您可以为数据创建一个容器,并通过 shell 脚本对其进行加密/解密。