為什麼 2026 年 Mac 上遠端檔案同步不能只靠一種工具(SFTP / rsync / 自動化)
開發與維運在日常工作中至少面臨三類需求:一是多台伺服器(開發/預發/生產)之間的可視化上傳下載與金鑰管理;二是定時或單向的增量同步、備份與 Time Machine 式歸檔;三是 CI/CD 流水線中建置產物自動推送到遠端 Mac 或測試機。SFTP 客戶端擅長第一類,rsync GUI 擅長第二類,腳本或 GitHub Actions 中的 rsync over SSH 擅長第三類。若只選一種,要麼手動操作過多,要麼自動化與權限邊界難以兼顧。2026 年主流做法是「按場景組合」:日常用 SFTP 客戶端管理多環境連線,大批量增量用 rsync(GUI 或命令列),自動化部署用 Actions 或 Jenkins 呼叫 rsync over SSH;若希望減少自管機器與網路排查成本,可把「遠端 Mac + SFTP + 目錄隔離」整體交給託管服務。
主流方案對比:macSCP、Acrosync、RsyncUI 與 rsync over SSH 的適用場景
下表從介面形態、增量能力、CI 整合與多環境管理四個維度對比,便於按需選型。
| 方案 | 類型 | 增量/斷點續傳 | CI/CD 整合 | 多環境管理 | 適用人群 |
|---|---|---|---|---|---|
| macSCP | SFTP 客戶端 | 單次傳輸 | 需自行腳本 | 多連線、Keychain 憑證 | 需可視化、多環境切換的開發者/維運 |
| Acrosync | rsync GUI | 支援、可定時單向同步 | 否 | 任務列表 | 需 Time Machine 式備份、NAS 同步的使用者 |
| RsyncUI | rsync GUI (SwiftUI) | 支援、任務組織 | 否 | 任務列表 | macOS 原生 rsync 使用者、2026 年仍活躍維護 |
| rsync over SSH / GitHub Actions | 命令列 / CI | 完整支援 | 是 | 透過 SSH 設定多主機 | DevOps、需建置產物自動部署的團隊 |
結論:日常多環境手動同步優先選 macSCP 等 SFTP 客戶端;本機到遠端的定時增量或備份選 Acrosync / RsyncUI;建置產物自動分發選 rsync over SSH 或 Burnett01/rsync-deployments 等 Action。若希望統一「準入 + 權限 + 增量」且不想自管機器,可選用提供 SFTP 與目錄隔離的遠端 Mac 託管,在允許的目錄內再跑 rsync。
如何在 GitHub Actions 中用 rsync over SSH 做自動化部署與產物分發
下面給出 5 步流程:在倉庫中設定 SSH 私鑰 Secret、安裝 rsync、執行 dry-run 校驗、正式同步並保留日誌。
# 1. 在 GitHub 倉庫 Settings → Secrets 中新增 SSH_PRIVATE_KEY(遠端 Mac 的私鑰)
# 2. workflow 範例(.github/workflows/deploy.yml)
- name: Deploy to remote Mac via rsync
uses: Burnett01/[email protected]
with:
switches: -avz --delete
path: ./dist/
remote_path: /var/www/app/
remote_host: ${{ secrets.REMOTE_HOST }}
remote_user: ${{ secrets.REMOTE_USER }}
remote_key: ${{ secrets.SSH_PRIVATE_KEY }}
# 3. 若不用 Action,可手寫步驟:
- run: mkdir -p ~/.ssh && echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
- run: chmod 600 ~/.ssh/id_ed25519
- run: rsync -avzn --delete ./dist/ ${{ secrets.REMOTE_USER }}@${{ secrets.REMOTE_HOST }}:/path/to/dest/
- run: rsync -avz --delete ./dist/ ${{ secrets.REMOTE_USER }}@${{ secrets.REMOTE_HOST }}:/path/to/dest/
注意:遠端 Mac 需開放 SSH(22 埠)、保證目標目錄權限與磁碟空間;若有多環境,可為 dev/staging/prod 設定不同 REMOTE_HOST 與路徑。
多環境(開發/預發/生產)下的權限與同步策略
(1)為每個環境使用獨立 SSH 金鑰或 SFTP 帳號,避免混用同一金鑰存取多環境。(2)目錄隔離:開發/預發/生產對應不同遠端路徑,透過 SFTP 或 SSH 設定限制只能存取指定目錄。(3)CI 只寫入、不刪除關鍵資料時,可僅開放上傳目錄的寫入權限,讀取權限按需開放。(4)審計:啟用 SSH 或 SFTP 的日誌記錄,便於追溯誰在何時同步了哪些檔案。(5)若採用託管遠端 Mac,由服務方提供 SFTP 與目錄隔離、可用性保障,團隊只需在允許的目錄內執行 rsync 或上傳,減少自管機器與防火牆排查。
決策清單:按團隊規模與場景選 SFTP 客戶端、rsync GUI 還是託管 Mac
- 個人或小團隊、多環境手動同步為主: 選用 macSCP 等 SFTP 客戶端,配合 Keychain 管理金鑰。
- 需要定時增量備份或 NAS 同步: 選用 Acrosync 或 RsyncUI,設定單向同步任務。
- CI/CD 建置產物自動部署: 使用 GitHub Actions + rsync over SSH 或 Burnett01/rsync-deployments,Secret 存私鑰與主機資訊。
- 希望統一權限、審計且減少自管節點: 將「遠端 Mac + SFTP + 目錄隔離」交給 SFTPMAC 等託管服務,在允許的目錄內繼續使用 rsync 或 SFTP 客戶端,由服務方保障可用性與策略。
上述工具在各自場景下都能勝任,真正決定長期體驗的是:多環境權限邊界清晰、CI 與手動的協同方式、以及故障時的快速排查。當團隊規模擴大或合規要求提高時,僅靠本機多開 SFTP 客戶端或自管多台 Mac 會帶來維護與網路成本;此時採用提供 SFTP 與目錄隔離的遠端 Mac 託管,往往更穩、更易擴展。
Mac 上做遠端檔案同步選 SFTP 客戶端還是 rsync GUI?
日常多環境手動同步、需要可視化與金鑰管理時,SFTP 客戶端(如 macSCP)更順手;若強調增量備份、定時單向同步或 Time Machine 式備份,rsync GUI(Acrosync、RsyncUI)更合適;CI/CD 自動化部署則用 rsync over SSH 或 GitHub Actions 等方案。
GitHub Actions 裡如何用 rsync 自動部署到遠端 Mac?
使用 rsync over SSH:在 Actions 中設定 SSH 私鑰為 Secret,在 job 裡安裝 rsync 後執行 rsync -avz --delete ./dist/ user@remote-mac:/path/to/dest/。可選用 Burnett01/rsync-deployments 等現成 Action 簡化步驟。
多環境檔案交付如何兼顧權限與效率?
建議用 SFTP 做準入與目錄權限隔離,在允許的目錄內再用 rsync over SSH 做大批量增量同步;或直接採用提供 SFTP 與目錄隔離的遠端 Mac 託管,由服務方保障可用性與策略,本機或 CI 只做上傳與校驗。
在自管多台 Mac 或 CI 節點上維護 SSH、rsync 與多環境權限,會佔用不少精力。若你更希望把時間用在業務交付上,可考慮將遠端檔案同步與權限管控交給專業託管:SFTPMAC 提供穩定 SFTP 與目錄隔離,相容 rsync over SSH 的增量同步,由我們保障節點可用性與權限策略,你只需專注建置與發布。
