技術 · 實用指南
Rclone crypt 遠端完整性怎麼核驗?信任 --checksum 前先稽核雜湊
命令成功不代表驗證完整。先確認 crypt 拓撲與底層雜湊能力,明確選擇 cryptcheck 或下載比對,保存各類報告,並將錯誤與不支援的物件排除在已驗證總數之外。

加密備份表面正常,驗證卻可能已悄悄退化成檔名、大小或只涵蓋部分物件。把明文來源、crypt 包裝層與底層儲存後端當成同一個端點時,風險尤其高,因為它們提供的雜湊並不相同。
Rclone 專用 cryptcheck 命令會讀取每個目標物件的 nonce,以相同 nonce 加密來源檔案,再比較產生的密文校驗和與加密後端底層提供的校驗和。只有後端確實為每個計入結果的物件提供可用校驗和,這種方法才有充分證據。
完整性比對階段為唯讀,不同步、不複製、不清除,也不刪除遠端資料。獨立的樣本復原是另一項操作,須使用隔離路徑。範圍內每個物件都必須歸入唯一且有記錄的結果類別;讀取或雜湊錯誤、不支援的校驗和、略過物件或無法解釋的數量差異,都使完整驗證的宣稱不成立。
1. 固定範圍,畫出三層拓撲
記錄明文來源、設定的 crypt 遠端,以及該遠端指向的底層儲存路徑。保留確切 Rclone 版本、設定名稱、子路徑、篩選規則,並註明來源是本機還是另一個遠端。不要揭露密碼、經 obscured 處理的憑證或權杖。
執行前先確認方向。在 `rclone cryptcheck source:path cryptedremote:path` 中,第二個端點必須是已設定的 crypt 遠端,不是底層原始儲存路徑。比較兩個原始密文儲存或兩個解密視圖回答的是不同問題,不能不加說明就互換。
從權威來源建立預期清單:物件數、總位元組數、篩選集合與已知排除項。這個分母可避免看似乾淨的日誌掩蓋從未進入檢查的檔案。
2. 確認加密後端能提供所需雜湊
官方 cryptcheck 參考要求 crypt 目標的底層遠端支援某種校驗和。核對具體後端和物件類型,不要假設有 crypt 包裝層就一定有雜湊。
使用已安裝 Rclone 版本適用的唯讀能力與中繼資料檢查,保存相關輸出。小物件有校驗和,不代表分段上傳、分塊或其他特殊物件也具有相同覆蓋。
若 Rclone 表示無法檢查雜湊、後端沒有相容雜湊,或某類物件缺少校驗和,就停止對這些物件宣稱 cryptcheck 驗收通過。記錄確切不支援數量,另選驗證路徑。
3. 依實際問題選擇比對方法
權威來源是明文、目標是 crypt 遠端,且底層後端提供校驗和時,使用 cryptcheck。本機來源讓 Rclone 讀取每個目標 nonce 後,在本機完成加密及雜湊。
若來源是另一個遠端,官方參考警告 cryptcheck 可能需要下載全部來源檔案。先估算傳輸量、出口費用、時間與本機資源,不要把同一命令當成便宜的伺服器端比較。
一般 `rclone check` 適用於普通端點間不修改資料的清單與共通雜湊比較。`--download` 可在無雜湊時下載資料比對,但屬於另一種高頻寬方法。只比較大小可當清單訊號,不能證明位元組完整性。
4. 全量唯讀檢查前先做小型 canary
選擇有代表性的 canary 集合,包含小檔案、較大檔案、能在正式環境之外安全準備的同大小已修改檔案,以及疑似雜湊行為不同的物件類型。檔案和路徑須避免敏感資訊。
只針對固定集合執行 cryptcheck,分別輸出 combined、match、differ、missing-on-source、missing-on-destination 與 error 報告。連同報告保留命令、起訖時間、版本及結束狀態。
逐字解讀 combined 標記:`=` 表示相同,`-` 表示僅目標存在,`+` 表示僅來源存在,`*` 表示內容不同,`!` 表示讀取或雜湊錯誤。驚嘆號不是內容不符,更不能算已驗證。
5. 擴大檢查時保留完整證據
canary 證明預期雜湊路徑後,再以相同端點方向與篩選規則檢查完整範圍。保守設定 checker 併行數,避免限速、記憶體壓力或後端節流使覆蓋錯誤淹沒在背景訊息中。
明確判斷 `--one-way` 是否符合復原問題。它要求來源檔案在目標存在且相符,但刻意不回報僅目標存在的額外物件。若過時或異常密文也重要,就不能用單向驗收。
把報告當成不可變的執行證據保存。只重新導向標準輸出並不足夠,因為警告和 NOTICE 可能正是雜湊不可用或已降級的證據。
6. 宣稱已驗證前先對齊覆蓋帳本
每個來源物件只計一次,歸入相符、不同、僅來源存在、涉及讀取或雜湊錯誤,或因雜湊不支援、遭略過而未驗證的類別。明確計入已記錄的排除項;僅目標存在的物件另列分支。重疊報告不能重複計算同一物件。
完整通過要求零差異、零意外缺失、零讀取或雜湊錯誤、零不支援物件,且分母能解釋。命令結束狀態與摘要只是輔助證據,不能取代物件分類帳本。
數量無法對齊時,先查明篩選、權限失敗、非法名稱、限速或無雜湊物件,再縮小範圍重跑。不能為了讓百分比好看,把未解決物件加入相符總數。
帳本類別:相符(`=`);含義:來源與加密目標已驗證相同;驗收:計入已驗證。
帳本類別:不同(`*`);含義:兩端都存在但內容不同;驗收:失敗並調查。
帳本類別:目標缺失(`+`);含義:來源存在而目標沒有對應物件;驗收:備份完整性失敗。
帳本類別:來源缺失(`-`);含義:目標有額外物件;驗收:除非刻意排除,否則調查。
帳本類別:讀取/雜湊錯誤(`!`);含義:無法讀取或計算雜湊;驗收:未驗證,本輪失敗。
帳本類別:不支援校驗和;含義:所需底層雜湊不可用;驗收:未驗證,改用其他方法。
7. 分開記錄傳輸安全與復原信心
2026 年 7 月的社群案例顯示,傳輸選項與驗證須分別留證:沒有共通雜湊的 NOTICE 讓使用 checksum 的同步退化成只看大小,同大小修改一直沒有更新,直到 cryptcheck 找出差異。這是實際拓撲警訊,不代表所有後端都如此。
cryptcheck 證明的是某一時刻所選來源位元組與加密目標物件相等。它不證明來源就是想要的歷史版本、憑證可復原,或應用程式層級復原會成功。
另做樣本復原測試:復原到隔離路徑,以預期設定解密,再核對應用程式可見檔案,不覆寫來源。cryptcheck 帳本與復原證據須分開記錄。
8. 建立可交給支援人員且不洩密的記錄
保存已去識別的拓撲、Rclone 版本、後端類型、確切唯讀命令、篩選規則、預期數量、報告計數、不支援物件數、結束狀態與執行時間。註明來源是本機或遠端,是否使用 one-way。
排除設定密碼、權杖、帳號識別資訊與私人檔名。分享重現案例時,使用產生的測試檔及遮蔽敏感資料的設定輸出。
端點方向、底層雜湊能力、篩選、物件類型與報告分母都明確後再升級問題,讓維護者區分真正的 Rclone 缺陷、不可用校驗和、高成本遠端來源或不完整清單。
常見問題
`rclone check` 會驗證 crypt 遠端的明文雜湊嗎?不會自動做到。官方 check 參考引導 crypt 使用者改用 cryptcheck 比較加密檔校驗和。一般 check 仍可提供唯讀清單訊號,`--download` 是有傳輸成本的另一條內容比對路徑。
cryptcheck 會下載每個檔案嗎?來源是本機明文時,取得目標 nonce 後可在本機讀取並加密來源。官方參考指出,另一個遠端作為來源時可能需要下載全部來源檔案。
combined 報告中的 `!` 是什麼?代表讀取或計算來源/目標雜湊時出錯。不是內容不同,錯誤解決前須保持未驗證。
`--one-way` 足夠做備份驗證嗎?只有驗收問題刻意排除僅目標存在的額外物件時才夠。它要求來源檔在目標存在且相符,但不回報目標額外檔案。
成功摘要能證明所有加密位元組都檢查了嗎?只有預期清單與各報告類別對齊,且沒有不支援校驗和、略過物件或讀取/雜湊錯誤時才可如此判斷。保存帶分母的帳本,不只依賴成功訊息。
