如何在 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 函數