如何在Linux上使用gocryptfs加密文件

时间:2020-01-09 10:39:10  来源:igfitidea点击:

我们要加密重要文件,而不是Linux系统的整个硬盘驱动器吗?如果是这样,我们建议gocryptfs。我们将获得一个目录,从本质上讲,该目录将加密和解密存储的所有内容。

gocryptfs提供防止数据泄露的保护

" gocryptfs"系统允许我们仅加密需要保护的目录,并避免系统范围内的加密和解密开销。它快速,轻巧且易于使用。将加密目录移动到其他计算机也很容易。只要我们具有访问该数据的密码,它就不会在另一台计算机上留下文件的痕迹。

" gocryptfs"系统构建为轻巧的加密文件系统。由于它使用用户空间(FUSE)包中的文件系统,因此也可以由常规的非root用户帐户安装。这充当gocryptfs和它需要访问的内核文件系统例程之间的桥梁。

安装gocryptfs

要在ubuntu上安装gocryptfs,请输入以下命令:

sudo apt-get install gocryptfs

要将其安装在Fedora上,请输入:

sudo dnf install gocryptfs

在Manjaro上,命令是:

sudo pacman -Syu gocryptfs

创建一个加密目录

gocryptfs的部分荣耀在于它的使用非常简单。原则是:

  • 创建一个目录以包含我们要保护的文件和子目录。

  • 使用gocryptrfs初始化该目录。

  • 创建一个空目录作为安装点,然后将加密目录安装到该目录上。

  • 在安装点,我们可以查看和使用解密的文件并创建新文件。

  • 完成后,卸载加密的文件夹。

我们将创建一个名为Vault的目录来保存加密数据。为此,我们键入以下内容:

mkdir vault

我们需要初始化新目录。此步骤在目录中创建gocryptfs文件系统:

gocryptfs -init vault

提示时输入密码;我们将输入两次以确保输入正确。选择一个强词:三个不相关的单词(包括标点符号,数字或者符号)是一个很好的模板。

主密钥已生成并显示。将其复制并保存在安全私密的地方。在我们的示例中,我们正在研究机器上创建一个gocryptfs目录,该目录在撰写每篇文章后都会被删除。

由于有必要提供示例,因此我们可以看到此目录的主密钥。我们绝对希望对自己的内容更加保密。如果有人获得了主密钥,则他们可以访问所有加密数据。

如果切换到新目录,将看到已创建两个文件。输入以下内容:

cd vault
ls -ahl

gocryptfs.diriv是一个简短的二进制文件,而gocryptfs.conf包含应确保安全的设置和信息。

如果将加密数据上传到云或者备份到小型可移动媒体,请不要包含此文件。但是,如果我们备份到受我们控制的本地媒体,则可以包含此文件。

花费足够的时间和精力,可能可以从加密的密钥和盐条目中提取密码,如下所示:

cat gocryptfs.conf

挂载加密目录

加密目录被挂载在挂载点上,该挂载点只是一个空目录。我们将创建一个称为怪胎:

mkdir data

现在我们可以在挂载点上挂载加密目录了,严格来说,实际挂载的是加密目录内的gocryptfs文件系统,并提示输入密码:

gocryptfs vault data

挂载加密目录时,我们可以像使用其他目录一样使用挂载点目录。我们在此目录中编辑和创建的所有内容实际上都会写入已安装的加密目录。

我们可以创建一个简单的文本文件,如下所示:

touch secret-notes.txt

我们可以对其进行编辑,向其中添加一些内容,然后保存文件:

gedit secret-notes.txt

我们的新文件已创建:

ls

如果我们切换到加密目录,如下所示,我们将看到已创建一个具有加密名称的新文件。我们甚至无法从名称中分辨出它是哪种文件类型:

cd vault
ls -hl

如果我们尝试查看加密文件的内容,我们可以看到它是真正被加密的:

less aJGzNoczahiSif_gwGl4eAUnwxo9CvOa6kcFf4xVgYU

现在,我们的简单文本文件(如下所示)几乎无法解密。

卸载加密目录

完成加密目录后,可以使用fusermount命令将其卸载。以下命令是FUSE软件包的一部分,从安装点卸载加密目录内的gocryptfs文件系统:

fusermount -u data

如果键入以下内容检查安装点目录,则会看到它仍然为空:

ls