使用 gocryptfs 加密 Dropbox 等雲端硬碟的檔案

作者: Yong-Siang Shih / Sat 08 December 2018 / 分類: Notes

gocryptfs

前言

當使用 Dropbox 等雲端硬碟儲存檔案的時候,有時難免會擔心資料的安全性問題而不敢上傳太過私人的資料。雖然也可以利用一些像是 VeraCrypt 之類的加密硬碟技術在 Dropbox 裡存放一個加密檔案空間,但由於整個加密空間視為一個檔案,如檔案太大則同步時可能會花上不少時間。

研究了一下後發現,其實也是有把加密空間表示成許多檔案的加密工具,例如像是 gocryptfs 就是一例。

本文便簡單紀錄 gocryptfs 的用法。

安裝

要在 Ubuntu 底下安裝 gocryptfs 相當容易,可以使用以下指令:

sudo apt install gocryptfs

建立加密資料夾

建立加密資料夾相當容易,首先進到和雲端同步的檔案夾,例如像是 $HOME/Dropbox,然後直接建立一個新資料夾,並用 gocryptfs -init 指令初始化:

mkdir ENCRYPTED_DIR
gocryptfs -init ENCRYPTED_DIR
Choose a password for protecting your files.
Password: 
Repeat: 
The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs ENCRYPTED_DIR MOUNTPOINT

裡頭大概會長這樣:

ENCRYPTED_DIR/
├── gocryptfs.conf
└── gocryptfs.diriv

掛載加密資料夾

緊接著,在其他非雲端同步的地方建立掛載點,並掛載加密資料夾:

mkdir MOUNT_DIR
gocryptfs $DROPBOX_DIR/ENCRYPTED_DIR MOUNT_DIR
Password:
Decrypting master key

Your master key is:

    ********-********-********-********-
    ********-********-********-********

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. Use "-q" to suppress this message.

Filesystem mounted and ready.

這樣就能在 MOUNT_DIR 資料夾裡頭存取檔案了。比如說我們可以隨便新增一個檔案:

echo test > MOUNT_DIR/test.txt

則就可以看到加密資料夾裡頭的加密檔也同步更新,並同步到雲端硬碟上:

ENCRYPTED_DIR/
├── 76h5Zq2yx76i5OP3HrrS3A
├── gocryptfs.conf
└── gocryptfs.diriv

卸載加密資料夾

最後要把資料夾關閉則可使用以下指令:

fusermount -u MOUNT_DIR

下次要打開加密資料夾存取,則再次使用 gocryptfs ENCRYPTED_DIR MOUNT_DIR 指令即可。

Locks
Yong-Siang Shih

作者

Yong-Siang Shih

軟體工程師,機器學習科學家,開放原始碼愛好者。曾在 Appier 從事機器學習系統開發,也曾在 Google, IBM, Microsoft 擔任軟體實習生。喜好探索學習新科技。
* 在 GitHub 上追蹤我

載入 Disqus 評論