使用 rclone 在 pcloud 上並加密
前言,這裡的用法主要是為了加密備份,以此方法處理過後,之後也要用同樣的方法去下載並解密,才能像一般檔案正常使用,無法像平常直接下載檔案使用。
rclone: 是一個命令列形式的處理雲端檔案的工具,有人說他是雲端的瑞士刀,並且在該頁面也可以看到他支援超過 40 種雲端空間,如常用的 google drive, onedrive, amazon s3 等,也包括我們今天要使用的 pcloud
pcloud: 有提供終生方案以及 zero-knowledge (零知識? - 需要額外加購) 的雲端空間,蠻常特價為 245 (USD/EUR),如有考慮的請自行衡量廠商倒閉的風險。這邊不多介紹 pcloud
以下是如何利用 rclone
去使用 pcloud 並利用 rclone crypt
加密,整體步驟大略是
- 用
rclone
設定好雲端空間 (這裡是 pcloud 作為範例) - 用
rclone crypt
設定好加密資訊 (對稱加密),並指定前面設定好的作為加密後的位置。
就是這兩個步驟,第一步驟可以換成任意 rclone
支援的雲端,而第二步驟則是可選,如果不用就是沒有額外加密。
這裡還會再補充 windows 或 pcloud eu 會遇到的問題。
rclone 設定雲端空間
基本上會跟這裡 https://rclone.org/pcloud 一樣,並搭配上 https://rclone.org/remote_setup/ 來處理設定的機器並沒有瀏覽器可以使用

1. rclone config
使用互動式介面來設定n
建立新的設定黨
2. name> <name>
: <name>
是設定檔的名字,rclone 會用這個名字來識別,在 crypt 設定中也需要設定檔的名字

3. Storage> <storage>
: <storage>
rclone
會列出清單,選擇相對應的即可,這裡我們使用 pcloud
4. Edit advanced config?
: 如果 pcloud 是選擇 EU 來存放資料的話,這裡要選擇 y 進入去修改位置
(pcloud EU) advanced config
此項要進去修改成 EU 用的,

5. hostname> <hostname>
: <hostname>
這裡使用 2 來指定是 EU,原先不修改的話這裡會是 1 US

6. Use auto config?
: auto config
這裡看你設定的機器是否有瀏覽器可以使用,如果有就用 1 ,rclone
會提供相對應的網址打開並認證即可,如果沒有的話要選擇 n) NO
,他會請你利用另一台有瀏覽器的機器,使用 rclone authorize "pcloud"
後再把認證資訊貼過來,那在有瀏覽器的機器上流程基本上一樣,rclone 會提供一個連結給你認證,認證完後把 result>
後方的貼回來即可。
可能會遇到的問題
我是在 windows 上遇到 rclone
所給的網址無法順利打開,原因是 port 53862 已經被占住了,所以需要將他讓出來。
rclone
會回報 An attempt was made to access a socket in a way forbidden by its access permissions
,或者點選他給的網址都無法顯示,是因為 port 53682 已經被占住了。那可能是因為 Hyper-V 的緣故。可以參照這裡的解決方式 https://stackoverflow.com/questions/15619921/an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permissi 記得要把 port 改成相對應的 53682 ,用管理員權限開啟 powershell 輸入以下指令,應該就能解決了。
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
netsh int ipv4 add excludedportrange protocol=tcp startport=53682 numberofports=1
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
rclone crypt 加密檔案後再上傳
這邊也是根據 https://rclone.org/crypt/ 來寫的步驟

1. rclone config
: 一樣使用 rclone config
來進入互動介面來設定n
建立新設定檔
2. name> <name>
: <name>
設定檔的名字

3. storage> crypt
使用 crypt 來設定加密
4. remote> <remote_name>:<path>
: <remote_name>
是上一步驟或者之前所建立的設定檔名稱﹝也可在 rclone config
所出現的列表確認﹞,<path>
在哪個路徑下要加密,這邊 rclone
也建議說不要使用最上層來當作加密的起點,而是至少弄在第一層底下如 pcloud:folder
等,而這樣也比較好管理,該資料夾底下都用同一種加密方式,而不在該資料夾底下的,可以是未加密,或者用不同組密碼來加密。

5. filename_encryption>
要怎麼加密檔名 (1. 正常加密 2. 多簡單混淆 3. 不加密) Password or pass phrase for encryption.
設定密碼,可以自己設定或者讓 rclone
隨機生成一組,這裡的密碼需要記住,當要再次設定讀取同一個資料夾,要使用 y 並填入一樣的密碼

6. directory_name_encryption>
要怎麼加密資料夾名 (1. 加密 2. 不加密) Password or pass phrase for salt
可以再增加安全性,但這裡如果有設定的話,在 rclone
中也需要記起來,這邊可能會跟一般 salt 的用法不太一樣。(注:跟前面一樣,如果這裡有設定,當要再次設定時,要使用 y 來填入一樣的密碼)

像這裡示範的,password: b1gg...Zng
跟 salt: DjF...DTA
就要記起來,等再次設定去讀取同一個資料夾時,就需要把這兩個也填入進設定檔。

像這裡,當我指定 crypt-test:subfolder/file
就會加密後送至 pcloud:test/subfolder/file
,可以先試著在另外的地方建立設定檔,並測試上傳下載,確保加解密可以正常讀取檔案,要不然等備份好一陣子,當要使用發現有密碼沒記或設定沒弄好,就慘了。
另外,雖然 rclone
不會直接把這兩個密碼明文存下來,但如果在不安全的環境,這樣的安全性並不高,可以在 rclone config
再加上密碼,詳情可見 https://rclone.org/docs/#configuration-encryption
那完成後就可以跟一般使用 rclone
一樣了。