# Restic: VPSへのバックアップにはRESTサーバーとSFTPのどちらを使うべき？

> Restic: VPSへのバックアップにはRESTサーバーとSFTPのどちらを使うべき？rest-serverは--append-onlyと--private-reposを追加します。SFTPはSSHのみで済みます。1 TB$1.66、暗号資産、身分証明書不要。

- URL: https://coffervale.com/ja/restic-rest-server-vs-sftp/
- 最終更新: 2026-11-02
- 発行者: Coffervale (https://coffervale.com)

どちらのバックエンドも、同じ暗号化されたリポジトリを同じフォルダ構成で保存します。違いは、誰が何を削除できるか、サーバーを何人で共有するか、そしてプロトコルが通信上どれだけのコストをかけるかです。

**概要 — Restic: VPSへのバックアップにはRESTサーバーとSFTPのどちらを使うべき？**

resticによるVPSへのバックアップでは、クライアントにスナップショットを削除させたくない場合はrest-serverを使用してください。`--append-only`モードで削除を拒否し、`--private-repos`で各ユーザーをそれぞれのフォルダに留めます。信頼できる1台のマシンからバックアップし、SSH以外を必要としない場合はSFTPを使用してください。**Coffervale**のストレージVPSでは、1 TBが12か月プランで月額$1.66（2 November 2026）です。

## resticのRESTサーバーとSFTPバックエンドの違いは何ですか？

| 機能 | SFTP | rest-server |
| --- | --- | --- |
| VPS上のソフトウェア | OpenSSH（インストール済み） | rest-server（Debian 13パッケージ`restic-rest-server`、または`restic/rest-server`Dockerイメージ） |
| 転送 | SSH | HTTPまたはHTTPS、デフォルトではポート8000 |
| ログイン | UnixアカウントごとのSSHキー | htpasswdファイル（bcryptまたはSHA）のHTTPユーザーとパスワード |
| クライアントが古いスナップショットを削除可能 | はい | いいえ、`--append-only`で |
| ユーザーは分離される | Unixアカウントとフォルダのパーミッション | `--private-repos`：各ユーザーは`/<user>/`の下のみ |
| ディスク上のリポジトリ構成 | ローカルリポジトリと同じ | ローカルリポジトリと同じ |
| リポジトリの暗号化 | restic、常時有効 | restic、常時有効 |

## rest-serverはSFTPより高速ですか？

**rest-serverプロジェクトは「はい」と述べています。SFTPと比較して、RESTバックエンドはパフォーマンスが優れ、より大規模にスケールするとしています。** そのREADMEには理由が記されています。SFTPは最大32 KiBのチャンク単位でデータを転送し、サーバーがすべてのパケットに応答しますが、RESTはHTTP経由でファイル全体を送信します。resticは送信するすべてをすでに暗号化しているため、平文のHTTPではTLSのオーバーヘッドもなくなります。READMEはさらに、HTTPSは主にログインを保護するために機能すると補足しています。これはプロジェクト自身の主張であり、当社が実行したベンチマークではありません。ハードディスクを搭載したストレージVPSでは、プロトコルよりも先にディスクとアップリンクが速度を決めることがよくあります。

クライアント側では、SFTPに1つ既知の厄介な点があります。resticのドキュメントによると、SFTPサーバーは一定時間何も受信しないと接続を閉じるため、変更のないファイルの長時間のスキャンでこれが発生することがあります。

## 平文のSFTPがより良い選択となるのはいつですか？

**信頼できる1台のマシンが自身のアカウントにバックアップし、追加のサービス、追加のポート、新たにパッチを当てるものを一切望まない場合です。** resticに必要なのは`restic -r sftp:user@host:/path init`と、パスフレーズの入力を求められないSSHキーのみです。自動バックアップは尋ねるために停止できないからです。弱点はランサムウェアに対して最も重要な点です。クライアントを制御する者が`restic forget --prune`も実行してすべてのスナップショットを削除できるのです。SFTPには追記専用モードがないからです。

各SFTPアカウントがサーバーの他の部分を閲覧できないようにするには、OpenSSHでシェルなしの自身のフォルダに閉じ込めることができます：

*/etc/ssh/sshd_config.d/restic-sftp.conf, then sshd -t && systemctl reload ssh*

```text
Match User restic-laptop
    ForceCommand internal-sftp
    ChrootDirectory /srv/restic-sftp/%u
    AllowTcpForwarding no
    X11Forwarding no
```

*アカウント、chroot、リポジトリ、VPS上でrootとして。その後クライアントはsftp:restic-laptop@203.0.113.10:/repoを使用*

```bash
useradd --no-create-home --home-dir /srv/restic-sftp/restic-laptop --shell /usr/sbin/nologin restic-laptop
install -d -m 755 -o root -g root /srv/restic-sftp/restic-laptop
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/repo
install -d -m 700 -o restic-laptop -g restic-laptop /srv/restic-sftp/restic-laptop/.ssh
echo 'ssh-ed25519 AAAA...client-key... laptop' > /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chown restic-laptop:restic-laptop /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
chmod 600 /srv/restic-sftp/restic-laptop/.ssh/authorized_keys
```

## 追記専用とプライベートリポジトリでrest-serverを実行するにはどうすればよいですか？

**Debian 13では、`restic-rest-server`をインストールし、`/home`の外にあるデータフォルダを指定し、デフォルト設定ファイルで`--append-only --private-repos`とTLSを渡します。** パッケージ化されたサービスは`restic-rest-server`ユーザーとして実行され、`/etc/default/restic-rest-server`から`BACKUP_DIR`、`LISTEN`、`ARGS`を読み取り、`BACKUP_DIR`が設定されるまで起動を拒否し、デーモンから`/home`を隠します。`--private-repos`を指定すると、ユーザー`laptop`は`/laptop/`の下のリポジトリのみを開くことができるため、複数の人が互いのスナップショットを見ることなく1つのストレージVPSを共有できます。クライアントが`--cacert`でピン留めするため、自己署名証明書で十分です。

*ストレージVPS上で、rootとして（Debian 13）*

```bash
apt install restic-rest-server apache2-utils openssl
install -d -m 750 -o restic-rest-server -g restic-rest-server /srv/restic

openssl req -x509 -newkey rsa:3072 -nodes -days 3650 \
    -keyout /etc/restic-rest-server/key.pem -out /etc/restic-rest-server/cert.pem \
    -subj '/CN=coffer-backup' -addext 'subjectAltName=IP:203.0.113.10'
chown root:restic-rest-server /etc/restic-rest-server/key.pem
chmod 640 /etc/restic-rest-server/key.pem

cat > /etc/default/restic-rest-server <<'EOF'
BACKUP_DIR=/srv/restic
LISTEN=:8000
ARGS="--htpasswd-file /etc/restic-rest-server/users.htpasswd --append-only --private-repos --tls --tls-cert /etc/restic-rest-server/cert.pem --tls-key /etc/restic-rest-server/key.pem"
EOF

htpasswd -B /etc/restic-rest-server/users.htpasswd laptop
chown root:restic-rest-server /etc/restic-rest-server/users.htpasswd
chmod 640 /etc/restic-rest-server/users.htpasswd
systemctl enable restic-rest-server
systemctl restart restic-rest-server
```

*クライアント側：認証情報はURLではなくプライベートファイルに*

```bash
mkdir -p ~/.config/restic
scp root@203.0.113.10:/etc/restic-rest-server/cert.pem ~/.config/restic/coffer.pem

cat > ~/.config/restic/coffer.env <<'EOF'
RESTIC_REPOSITORY=rest:https://203.0.113.10:8000/laptop/
RESTIC_REST_USERNAME=laptop
RESTIC_REST_PASSWORD=the-htpasswd-password
RESTIC_PASSWORD_FILE=/home/me/.config/restic/repo-password
RESTIC_CACERT=/home/me/.config/restic/coffer.pem
EOF
chmod 600 ~/.config/restic/coffer.env

set -a; . ~/.config/restic/coffer.env; set +a
restic init
restic backup ~/Documents ~/Pictures
```

## rest-serverが追記専用のとき、スナップショットをpruneするにはどうすればよいですか？

**信頼できる管理マシンから、追記専用ではないパスを介して`forget --prune`を実行し、`--keep-within`でポリシーを記述します。** rest-serverはローカルリポジトリと同じ構成でリポジトリを保持するため、rootとしてのSFTPがまさに同じフォルダに到達し、リポジトリのパスワードをVPS上で入力する必要はありません。

`--keep-within`の部分が重要です。resticのドキュメントは、追記専用リポジトリに空のスナップショットを追加する攻撃者について説明しています。これにより、週に1つのスナップショットといったポリシーが本物のスナップショットを除外してしまいます。時間ベースのポリシーは、ジャンクと本物のスナップショットの両方を保持します。これは`forget`の実行時にシステムクロックが正しい場合にのみ役立ち、最初に`restic snapshots`を確認することを省く理由にはなりません。

*管理マシンから、決してクライアントからは実行しない*

```bash
restic -r sftp:root@203.0.113.10:/srv/restic/laptop snapshots
restic -r sftp:root@203.0.113.10:/srv/restic/laptop forget --keep-within 90d --prune
restic -r sftp:root@203.0.113.10:/srv/restic/laptop check --read-data-subset=5%
```

## どのバックエンドを選ぶべきですか？

**バックアップ対象のマシンがインターネットに面している場合は常にrest-serverを選び、シンプルさが勝る、単一のよく管理されたマシンにはSFTPを選びます。** 追記専用のターゲットは、サーバーを暗号化する攻撃者によって空にすることはできず、その1つの特性が余分なデーモンを上回ります。

| あなたの状況 | バックエンド | 理由 |
| --- | --- | --- |
| ノートPCまたはデスクトップ1台、アカウント1つ | SFTP | インストール不要、新しいポートなし |
| ハッキングされる可能性のある公開サーバー | rest-server `--append-only` | 盗まれたクライアントは履歴を削除できない |
| 1つのVPS上の複数の人またはマシン | rest-server `--private-repos` | 各ログインは自身のフォルダのみを参照 |
| ネットワークからの外向きはHTTPまたはHTTPSのみ許可 | rest-server | SSHがブロックされている環境でも動作 |
| 両方：クライアントは追記専用、管理者がprune | クライアントにはrest-server、管理者にはrootとしてのSFTP | 同じフォルダ、2つのアクセスレベル |

## resticのターゲットは1TBあたりいくらですか？

**2026年11月2日のCoffervaleの調査によると、resticがネイティブにサポートするオブジェクトストレージであるBackblaze B2は、月額1TBあたり$6.95でした。一方、ID書類なしで暗号資産を受け付けるホストのストレージVPSプランは、1TBあたりの中央値が$4.00でした。** オブジェクトストレージはサーバーを維持する必要がありませんが、ここで扱う2つのバックエンドのいずれも提供しません。ストレージVPSはその両方を実行できます。当社はお客様のサーバーのバックアップを取得せず、お客様のデータのコピーを他のどこにも保存しません。そのため、CoffervaleのストレージVPSに置くものは、お客様のコピーの1つであるべきで、唯一のコピーにしてはいけません: VPSがオフサイトコピーになります。詳しくは[VPSをオフサイトバックアップに使うにはどうすればよいですか？](https://coffervale.com/ja/backup-vps/ "Off-site backups and the 3-2-1 rule")]で説明しています。Borgを使いたい場合は[VPSにBorgバックアップサーバーをセットアップするにはどうすればよいですか？](https://coffervale.com/ja/borg-backup-server-on-a-vps/ "Borg server with append-only keys")]に従ってください。その下のディスクを暗号化するには、[Linux VPSでストレージディスクをマウントしてフォーマットするにはどうすればよいですか？](https://coffervale.com/ja/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk")]をご覧ください。プランと条件は[ストレージVPSの月額費用はいくらですか？](https://coffervale.com/ja/pricing/ "Coffervale storage VPS prices")]に記載しています。

## VPS上のresticに関する質問

### restic over SFTPは暗号化されていますか？

はい、二重に暗号化されています。resticは保存するすべてのファイルをAES-256で暗号化し、アップロード前にPoly1305-AESで認証します。さらにSSHが接続を暗号化します。VPSが保持するのは暗号文だけです。

### resticがすでにデータを暗号化している場合、rest-serverにはHTTPSが必要ですか？

はい、ログインのために必要です。TLSがないと、HTTPのユーザー名とパスワードが平文でネットワークを流れ、それを傍受した人があなたのリポジトリに書き込めるようになります。`--tls`を使用するか、rest-serverをlocalhost上に置いてSSHトンネル経由でアクセスしてください。

### rest-serverとSFTPは同じリポジトリを提供できますか？

はい。どちらもローカルリポジトリと同じフォルダレイアウトを使用するため、クライアントは追加専用のrest-server経由で書き込み、管理者は同じフォルダをSFTP経由でプルーニングできます。

### rest-serverはどのポートでリッスンしますか？

デフォルトではすべてのアドレスでポート8000です。ファイアウォールではバックアップを行うアドレスのみに開放するか、WireGuardインターフェースなどのプライベートアドレスにバインドしてください。

### どのresticバージョンを実行すればよいですか？

2026年11月2日時点の最新リリースは、2026年7月5日公開のrestic 0.19.1でした。Debian 13には0.18.0が同梱されています。現在のデフォルトであるリポジトリフォーマットバージョン2には、それを開くすべてのマシンにrestic 0.14.0以降が必要です。

## 出典

1. [Rest Server README: 使用する理由、追加専用モード、プライベートリポジトリ、htpasswd、TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [resticドキュメント: 新しいリポジトリの準備（SFTP、REST Server、B2）](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [resticドキュメント: バックアップスナップショットの削除、追加専用モードのセキュリティに関する考慮事項](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [resticドキュメント: スクリプト、環境変数](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [restic ドキュメント：リファレンス、リポジトリの暗号化](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [resticリリース（2026年7月5日の0.19.1）](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Debian trixieパッケージ restic-rest-server 0.13.0-2: サービスユニットとデフォルト](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Debian trixieパッケージ検索: restic 0.18.0](https://packages.debian.org/search?keywords=restic&searchon=names&suite=trixie&section=all) — Debian (read 2026-11-02)
9. [sshd_config(5): Match、ChrootDirectory、ForceCommand](https://man.openbsd.org/sshd_config) — OpenBSD project (OpenSSH) (read 2026-11-02)
10. [B2 Cloud Storageの料金](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: CoffervaleはヨーロッパでストレージVPSを販売しています。オフサイトバックアップ、Nextcloud、Seafile、Syncthing、アーカイブ用途向けに、500 GBから8 TBのHDDストレージを備えたKVMサーバーを提供しており、暗号資産で支払い、サインアップ時に身分証は不要です。サーバーはアムステルダム、ブカレスト、キシナウで稼働しており、運営者はパナマに登記された企業DomaineGoat LLCです。12か月契約では、各プランは、2026年11月2日に価格を確認したKYC不要の暗号資産ホスト10社から選定した、名前を明示した同等のストレージVPSより、月額で少なくとも25%安く設定されています。
