2026 運用rcloneSFTPリモートMac

2026年 rclone と SFTP/rsync でリモートMacへ成果物同期:ミラー戦略・読み取り専用配布・CI最小権限マトリクス

リモートMac成果物アップロードアセットミラー を同時に行うとき、ミラー整合性と顧客向けリリースを同一ディレクトリに載せないでください。本稿は rclonersync over SSH対話型 SFTP の役割を分け、SFTP remote 七手順 を示し、原子リリースChroot完全性CI 憑依 に接続します。SFTPMAC ホスト型リモートMac で締めます。

rcloneSFTPrsyncリモートMacCI/CDミラー
リモートMacへ SFTP と rclone で成果物とミラーを同期するイメージ

三つの痛み:ミラーとリリースを同一ディレクトリに載せる危険

第一に、ミラーをそのまま顧客向け公開ディレクトリに向ける。rclone はソースと整合したツリーを維持するのに長けますが、誤ったフィルタや上流削除がそのまま伝播します。iOS/macOS 成果物を載せる リモートMac では、先にステージングへ入れ 原子リリース のシンボリック切替へ寄せるべきです。

第二に、internal-sftp とツール前提の不一致。chroot された SFTP のみアカウントではシェル実行がありません。rclone の SFTP remote は動きますが、誤ってリモートコマンド前提にするとタイムアウトだけが残ります。Chroot 多テナント で所有者と jail 根を確認してください。

第三に、rclone.conf に秘密が残る。ランナーで対話的に rclone config すると翌ジョブまでファイルが残り、憑依寿命が延びます。CI/CD 憑依の記事 と同様に短命鍵と環境分離を徹底します。

補足:ミラー用とアップロード用で Unix アカウントまたはプレフィックスを分け、並行 SFTP と rclone の --transfers を整合させます。ミラー先を current シンボリックに直接向けないでください。秘密を含む conf はリポジトリに入れずジョブ単位で注入します。バスチョンや SSH 証明書利用時は ProxyJump を remote に書きます。

適合比較:rclone、rsync over SSH、対話型 SFTP

rsync over SSH は既知パス間の差分転送に最適で、--partial と検証、リリースゲートと組み合わせて CI で広く使われます。対話型 SFTP は人手の切り分け向きです。rclone は S3 互換や複数バックエンドを単一の構文で扱うときに強みがあります。単一の リモートMac 入口では rsync の代替ではなく補完です。

SFTP remote は公開鍵・証明書・known_hosts・バスチョン方針を既存運用に合わせる必要があります。checksum 系フラグは 完全性と監査 の思想と同じく、終了コードゼロがビジネス承認を意味しません。

読み取り専用ミラーは Mac 側で rclone をスケジュールし、CI が書き込むツリーと権限で隔離します。

意思決定マトリクス

同期方向・アカウント・プレフィックス・削除可否・原子リリース連携をチケットに残します。

シナリオ推奨主リスク関連記事
CI が releases ステージへ成果物投入rsync over SSHin-place 半端公開原子・完全性
オブジェクトストレージから Mac へ素材ミラーrclonesync による削除Chroot・RO アカウント
手動スポット確認SFTP クライアント自動化欠如ツール選定
複数クラウドから単一 Mac 入口rclone+命名規律憑依分散CI 憑依・SSH CA

複数ツール共存時の責務境界をアカウントと sshd Match で固定します。

実装:SFTP remote までの七手順

テストパスで検証し、秘密はジョブ内のみに保持します。

# 1 internal-sftp とプレフィックスを Chroot 記事どおり確認
# 2 CI で短命 ed25519 を RUNNER_TEMP に生成
rclone config create mac_sftp sftp host sftp.example.com user mirror_ro key_file "$RUNNER_TEMP/ci_ed25519" shell_type none
rclone lsd mac_sftp:uploads
rclone copy ./marker.txt mac_sftp:uploads/ci_probe/ -v
rclone copy ./assets mac_sftp:assets_mirror/ --transfers 4 --checkers 8 --sftp-connections 2 -v
# sync は dry-run のうえ削除監査を必須とする
# releases/BUILD_ID へだけ同期し current 切替は別スクリプト

本番で sync を使うなら削除集合をレビューし、公開ツリーには copy を優先します。

定量基準

初期 --transfers 4 から sshd CPU と RTT を見て調整します。checkerssftp-connections の積はセッション予算内に収めます。WAN では ServerAliveInterval 60 を揃えます。SHA256 マニフェストによるリリースゲートは別途維持します。

多入口運用が負担なら SFTPMAC のホスト型 リモートMac で入口とテナント分離を束ねます。握手 P95 が 800ms を超えたらバスチョンとセッションテーブルを先に確認します。

FAQ とホスト型 Mac

rclone で CI リリースを代替できるか

原子ディレクトリ意味を再設計できるなら可能ですが、多くのチームは rsync で差分投入し rclone はミラーに回します。

読み取り専用鍵の再利用リスク

別ワークフローへコピーすれば上書きリスクが残ります。鍵と remote 名を分割し sshd Match でプレフィックスを強制します。

OIDC 短命憑依との接続

ジョブ開始時に鍵ファイルを書き、終了時に破棄します。

まとめ:rclone と rsync/SFTP は補完関係です。境界・完全性・並行を揃えれば同期は監査可能なシステム能力になります。

限界:自前の多テナントは工数が嵩みます。SFTPMAC は隔離と入口をパッケージ化し、ビルドと配布に集中できます。

隔離されたリモートMacでミラーと rsync リリースをまとめて運びたい場合はプランをご確認ください。