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

已发表: 2022-01-29
笔记本电脑上的终端窗口图形。
Fatmawati Achmad Zaenuri/Shutterstock

您想加密重要文件,而不是您的 Linux 系统的整个硬盘吗? 如果是这样,我们推荐gocryptfs 。 您将获得一个目录,该目录本质上是对您存储的所有内容进行加密和解密。

gocryptfs 提供数据泄露保护

隐私是个大新闻。 几乎每周都会有一个组织或另一个组织的违规事件宣布。 公司要么报告最近的事件,要么披露一段时间前发生的违规行为。 在这两种情况下,对于那些数据已被暴露的人来说,这都是个坏消息。

由于数百万人使用 Dropbox、Google Drive 和 Microsoft OneDrive 等服务,每天都有看似永无止境的数据流被推送到云端。 如果您将部分(或全部)数据存储在云上,如果发生泄露,您可以做些什么来保护机密信息和私人文档?

当然,数据泄露有各种形式和规模,而且不限于云。 丢失的记忆棒或被盗的笔记本电脑只是较小规模的数据泄露。 但规模并不是关键因素。 如果数据是敏感或机密的,其他人拥有它可能是灾难性的。

一种解决方案是加密您的文档。 传统上,这是通过对硬盘驱动器进行整体加密来完成的。 这是安全的,但它也会稍微减慢您的计算机速度。 此外,如果您遭受灾难性故障,它可能会使从备份恢复系统的过程复杂化。

广告

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

gocryptfs系统被构建为一个轻量级的加密文件系统。 它也可以通过常规的非 root 帐户安装,因为它使用用户空间中的文件系统 (FUSE) 包。 这充当了gocryptfs和它需要访问的内核文件系统例程之间的桥梁。

安装 gocryptfs

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

 sudo apt-get install gocryptfs 

要在 Fedora 上安装它,请输入:

 须藤 dnf 安装 gocryptfs 

在 Manjaro 上,命令是:

 sudo pacman -Syu gocryptfs 

创建加密目录

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

  • 创建一个目录以包含您要保护的文件和子目录。
  • 使用gocryptrfs初始化该目录。
  • 创建一个空目录作为挂载点,然后将加密目录挂载到上面。
  • 在挂载点,您可以查看和使用解密文件并创建新文件。
  • 完成后卸载加密文件夹。

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

 mkdir 保险库

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

 gocryptfs -init 保险库

出现提示时输入密码; 您将键入两次以确保它是正确的。 选择一个强有力的:三个不相关的单词,包括标点、数字或符号是一个很好的模板。

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

广告

作为示例,您可以看到该目录的主密钥。 你肯定想对你的秘密更加保密。 如果有人获得了您的主密钥,他们就可以访问您的所有加密数据。

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

 光盘库
ls -ahl 

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

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

如果有足够的时间和精力,也许可以从“加密密钥”和“盐”条目中提取您的密码,如下所示:

 猫 gocryptfs.conf 

挂载加密目录

加密目录挂载在一个挂载点上,该挂载点只是一个空目录。 我们将创建一个名为“geek”的:

 mkdir 极客
广告

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

 gocryptfs 保险库极客

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

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

 touch secret-notes.txt

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

 gedit secret-notes.txt

我们的新文件已创建:

 ls 

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

 光盘库
ls -hl 

如果我们尝试查看加密文件的内容,我们可以看到它确实是加扰的:

 少 aJGzNoczahiSif_gwGl4eAUnwxo9CvOa6kcFf4xVgYU 

广告

我们的简单文本文件(如下所示)现在绝非易懂。

卸载加密目录

完成加密目录后,可以使用fusermount命令卸载它。 作为 FUSE 包的一部分,以下命令从挂载点卸载加密目录中的gocryptfs文件系统:

 fusermount -u 极客

如果您键入以下内容来检查您的挂载点目录,您会看到它仍然是空的:

 ls 

您所做的一切都安全地存储在加密目录中。

简单安全

简单的系统具有使用频率更高的优势,而更复杂的过程往往会被搁置一旁。 使用gocryptfs不仅简单,而且安全。 没有安全性的简单是不值得的。

您可以根据需要创建任意数量的加密目录,也可以只创建一个来保存所有敏感数据。 您可能还想创建一些别名来挂载和卸载加密文件系统,并进一步简化流程。

相关:如何在 Linux 上创建别名和 Shell 函数