概要
VPSでBorgバックアップサーバーをセットアップするにはどうすればよいですか?
VPSでBorgバックアップサーバーをセットアップするには、両端にBorg 1.xをインストールし、borgユーザーを作成し、各クライアントキーにborg serve --restrict-to-path --append-onlyを強制します。各リポジトリをrepokeyで初期化し、別の管理キーからpruneとcompactを行います。Coffervaleの1 TB VPSは12か月契約で月額$1.66です(2 November 2026)。
手順を順番に教えてください。
サーバーとクライアントに同じBorg 1.xをインストールする
DebianまたはUbuntuで
apt install borgbackupを実行し、両端でborg --versionを比較します。borgユーザーとリポジトリ用フォルダーを作成する
VPS上の1つの非特権アカウントがすべてのリポジトリを所有し、クライアントがシェルを取得することはありません。
authorized_keysでborg serveを強制する
クライアントキーごとに1行、それぞれを
--restrict-to-pathと--append-onlyで自身のパスに限定します。repokeyでリポジトリを初期化する
クライアントから
borg init --encryption=repokeyを実行し、キーをエクスポートして両方のマシンから離れた場所に保管します。クライアントでborg createをスケジュールする
cronまたはsystemdタイマーで毎日、パスフレーズは
BORG_PASSCOMMANDが読み取ります。管理キーからpruneとcompactを実行する
--append-onlyのない2つ目のキーを、アーカイブ一覧を確認した後に信頼できるマシンから使用します。リポジトリをチェックし、リストアをテストする
週に1回
borg check、月に1回--verify-data、数か月ごとに実際のborg extractを行います。
サーバーはどのBorgバージョンを実行すべきですか?
両端でBorg 1.xを実行してください。1.4.5が2026年11月2日時点の最新安定版で、Borg 2はまだベータ版です。 Borg 2.0のページでは、Borg 1.xのリポジトリと直接互換性のない破壊的リリースとされ、borg initがborg repo-createに改名されています。Debian 13でインストールすべきパッケージはborgbackupです(trixieでは1.4.0)。別個のborgbackup2パッケージは2.0のベータ版です。サーバーとすべてのクライアントに同じリリースをインストールしてください。
apt install borgbackup
borg --version
useradd --create-home --home-dir /srv/borg --shell /bin/sh borg
install -d -m 700 -o borg -g borg /srv/borg/.ssh /srv/borg/repos
install -d -m 700 -o borg -g borg /srv/borg/repos/laptop /srv/borg/repos/web1各クライアントを自分のリポジトリだけに制限するにはどうすればよいですか?
/srv/borg/.ssh/authorized_keys内のすべてのキーの前に強制borg serveコマンドを置き、そのキーがBorgだけを実行できるようにします。 restrictキーワードはポート転送、エージェント転送、ターミナルをブロックし、Borgのドキュメントによれば将来のリリースで追加されるSSH機能も対象になります。例ではアカウントのログインシェルとしてPOSIXシェルを想定しているため、上記のユーザーには/bin/shを設定します。
--restrict-to-path PATHはそのパスと配下のすべてのフォルダを許可するので、1つのクライアントが複数のリポジトリを持てます。--restrict-to-repository PATHはより厳格で、リポジトリはちょうど1つ、サブフォルダは不可です。--append-onlyはキーがアーカイブを追加できるようにしますが、リポジトリからデータを削除することはできません。--storage-quota 500Gは1つのキーが保存できる量を制限するので、暴走したクライアントがディスクを埋めることはありません。
各行はファイル内で1行のままにします。最後の管理キーには--append-onlyがなく、pruneにのみ使用します。
command="borg serve --restrict-to-path /srv/borg/repos/laptop --append-only",restrict ssh-ed25519 AAAA...laptop-key... laptop
command="borg serve --restrict-to-path /srv/borg/repos/web1 --append-only --storage-quota 500G",restrict ssh-ed25519 AAAA...web1-key... web1
command="borg serve --restrict-to-path /srv/borg/repos",restrict ssh-ed25519 AAAA...admin-key... adminchown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keysrepokey暗号化でリポジトリを作成するにはどうすればよいですか?
クライアントでborg init --encryption=repokeyを実行し、その後キーをエクスポートして、VPSとバックアップ対象のマシンの両方の外に保管してください。 Borgのドキュメントでは、経験則として強力なパスフレーズを付けたrepokeyを推奨しています。repokey-blake2は同じモードでBLAKE2bハッシュを使用し、ハードウェアアクセラレーションされたSHA-256がないプロセッサではおそらく高速です。repokeyでは、キーはリポジトリのconfigファイル内にあり、パスフレーズで封印されています。パスフレーズを失うと、バックアップはあなたにも他の誰にも読めなくなります。Borgはまた、キーのオフサイトコピー(たとえば紙に書いたもの)を保管する必要があると述べています。
ssh-keygen -t ed25519 -N '' -C 'borg laptop' -f ~/.ssh/borg_ed25519
cat >> ~/.ssh/config <<'EOF'
Host coffer-borg
HostName 203.0.113.10
User borg
IdentityFile ~/.ssh/borg_ed25519
IdentitiesOnly yes
EOF
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/laptop/main
borg init --encryption=repokey
borg key export --paper "$BORG_REPO" ~/borg-laptop-key.txt#!/bin/sh
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
# the passphrase file belongs to root, mode 600
export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase'
borg create --stats --compression zstd,3 \
::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
/etc /home /var/wwwappend-onlyリポジトリをpruneしてcompactするにはどうすればよいですか?
信頼できる管理マシンから、--append-onlyのないキーを使用し、アーカイブが欠落していないことを確認した後で行います。 append-onlyモードでは、Borgの注記によれば、pruneとdeleteは実行されますが、新しいトランザクションでデータを削除済みとしてタグ付けするだけで、compactionは警告もエラーもなく一切行われません。リポジトリのスペースは、書き換えが許可されたキーからborg compactを実行するまで解放されません。
同じ注記には落とし穴もあります。通常モードでの最初の書き込みで、攻撃者がクライアントキーを通じて行ったものを含め、以前のすべての削除が永続的になります。したがって、まずアーカイブを一覧表示してください。いくつかが欠落している場合は、何かをpruneする前に停止し、Borgのappend-onlyに関する注記の復旧手順に従ってください。制限のないキーで自動的にpruneするcronジョブは、append-onlyを無意味にします。Borgのドキュメントではまた、実際のpruneの前に毎回--listを付けた--dry-runを推奨しています。
export BORG_REPO=ssh://coffer-admin/srv/borg/repos/web1/main
borg list
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg compactリポジトリをチェックし、リストアが機能することを証明するにはどうすればよいですか?
borg checkを毎週、borg check --verify-dataを毎月実行し、数か月ごとに実際のファイルを別のマシンに展開してください。 通常のチェックはリポジトリとアーカイブのメタデータを検証します。--verify-dataはすべてのチャンクを読み取り、復号化し、展開します。Borgはこれを非常に時間がかかると述べており、ハードディスクではその通りです。大規模なリポジトリの場合、--repository-only --max-duration 3600はリポジトリチェックを1時間単位のスライスに分割し、停止した場所から再開します。これらいずれも実際のリストアの代わりにはなりません。バックアップは、最後にデータを取り出したときの状態でしか価値がありません。
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
borg check -v
borg check -v --verify-data
borg check -v --repository-only --max-duration 3600
mkdir -p /tmp/restore-test && cd /tmp/restore-test
borg list
borg extract --list ::web1-2026-11-02T03:00 etc/nginxBorgターゲットのコストは、ホステッドBorgストレージと比べてどうですか?
Coffervaleの2026年11月2日の調査によると、ホステッドBorgストレージのコストはBorgBaseで1TBあたり月額$9.17(1TBのMediumプラン、年額$110.00)、rsync.netで1TBあたり$15.00でした。一方、本人確認書類なしで暗号資産を受け付けるホストのストレージVPSプランは1TBあたり中央値$4.00でした。 ホステッドサービスはサーバーを代行して運用します。ストレージVPSはrootと上記のセットアップをあなたに渡します。この選択についてはストレージVPSはrsync.netやBorgBaseのより安価な代替手段ですか?で検討しています。当社はお客様のサーバーのバックアップを取得せず、お客様のデータのコピーを他のどこにも保存しません。そのため、CoffervaleのストレージVPSに置くものは、お客様のコピーの1つであるべきで、唯一のコピーにしてはいけませんなので、Borgサーバーは複数のコピーの1つにすぎません。VPSをオフサイトバックアップに使うにはどうすればよいですか?で説明しています。1TBプランの詳細は1TBのストレージがあるVPSはどこで入手できますか?にあり、resticを好む場合はRestic:VPSへのバックアップにはRESTサーバーかSFTPか?をお読みください。VPSディスクも暗号化するには、Linux VPSでストレージディスクをマウントしてフォーマットするにはどうすればよいですか?をご覧ください。
Borgターゲットの1TBあたり月額、2026年11月2日
| Borgターゲット | 1TBあたり月額 | 自分で運用するもの | 暗号資産で支払い |
|---|---|---|---|
| BorgBase Medium、1 TB | $9.17(年間$110.00) | なし:ホステッドBorgおよびresticリポジトリ | 記載なし |
| rsync.net、0〜9 TBティア | $15.00 | なし:SSH経由でアクセスするZFSストレージ | 記載なし |
| ストレージVPS、99プランの中央値 | $4.00 | このページで設定するBorgサーバー | はい:本人確認書類なしで暗号資産を受け付けるホスト |
| Coffervale Clay、1 TB | 12か月で$1.66 | このページで設定するBorgサーバー | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
価格確認日:
価格は2026年11月2日に各サービスの自身のページで確認したものです。BorgBaseはMediumプランを年額で請求し、価格はVAT抜きで表示されています。ストレージVPSの中央値は500 GB以上のプランで、在庫があり月額請求のものを対象としています。
Borgバックアップサーバーに関する質問
クライアントとサーバーで同じBorgバージョンが必要ですか?
両方をBorg 1.xに保ち、できれば同じリリースにしてください。Borg 2はまだベータ版で、新しいリポジトリ形式を使用し、1.xのリポジトリを直接開けません。Debian 13ではborgbackup2ではなくborgbackupをインストールしてください。
--restrict-to-pathと--restrict-to-repositoryのどちらを使うべきですか?
--restrict-to-pathはフォルダとその配下すべてを許可し、1つのクライアントが複数のリポジトリを保持する場合に便利です。--restrict-to-repositoryはちょうど1つのリポジトリのみを許可しサブフォルダは不可で、各クライアントが1つだけ持つ場合のより厳格な選択です。
borg pruneの後でリポジトリが縮小しないのはなぜですか?
Pruneはアーカイブを削除済みとしてマークするだけです。スペースを解放するのはborg compactです。append-onlyキーを通じた場合、compactionは一切実行されないため、pruneとcompactは管理キーから行ってください。
1つのストレージVPSで複数のマシンのBorgリポジトリを保持できますか?
はい。各マシンにauthorized_keysで専用のキー行を用意し、専用のパスを設定し、ディスクを共有している場合は専用の--storage-quotaを用意してください。そうすれば、万一クライアントが1台侵害されても、届くリポジトリは1つだけになります。
Borgのパスフレーズを紛失したらどうなりますか?
リポジトリは完全に読めなくなります。Borgもホストも復元できません。パスフレーズはパスワードマネージャーに、エクスポートしたキーは紙に保存し、VPSとクライアントから離れた場所に置いてください。
出典 (13)
- Borg 1.4.5 ドキュメント: リポジトリのホスティング — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: borg serve (制限オプション、append-only、ストレージ容量制限) — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: borg init (暗号化モード、キーのバックアップ) — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: borg prune — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: borg compact — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: borg check — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント:追加の注意事項、append-onlyモード — BorgBackup project (read 2026-11-02)
- Borg 1.4.5 ドキュメント: クイックスタート (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0(予備情報) — BorgBackup project (read 2026-11-02)
- BorgBackup リリース (最新は 1.4.5、プレリリースは 2.0.0b25) — BorgBackup project on GitHub (read 2026-11-02)
- Debian trixie パッケージ: borgbackup 1.4.0、borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- プランと料金 borgbase.com — BorgBase (read 2026-11-02)
- クラウドストレージの料金 rsync.net/pricing.html — rsync.net (read 2026-11-02)