概要
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-serverDockerイメージ) |
| 転送 | 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でシェルなしの自身のフォルダに閉じ込めることができます:
Match User restic-laptop
ForceCommand internal-sftp
ChrootDirectory /srv/restic-sftp/%u
AllowTcpForwarding no
X11Forwarding nouseradd --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でピン留めするため、自己署名証明書で十分です。
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-servermkdir -p ~/.config/restic
scp [email protected]:/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 ~/Picturesrest-serverが追記専用のとき、スナップショットをpruneするにはどうすればよいですか?
信頼できる管理マシンから、追記専用ではないパスを介してforget --pruneを実行し、--keep-withinでポリシーを記述します。 rest-serverはローカルリポジトリと同じ構成でリポジトリを保持するため、rootとしてのSFTPがまさに同じフォルダに到達し、リポジトリのパスワードをVPS上で入力する必要はありません。
--keep-withinの部分が重要です。resticのドキュメントは、追記専用リポジトリに空のスナップショットを追加する攻撃者について説明しています。これにより、週に1つのスナップショットといったポリシーが本物のスナップショットを除外してしまいます。時間ベースのポリシーは、ジャンクと本物のスナップショットの両方を保持します。これはforgetの実行時にシステムクロックが正しい場合にのみ役立ち、最初にrestic snapshotsを確認することを省く理由にはなりません。
restic -r sftp:[email protected]:/srv/restic/laptop snapshots
restic -r sftp:[email protected]:/srv/restic/laptop forget --keep-within 90d --prune
restic -r sftp:[email protected]:/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をオフサイトバックアップに使うにはどうすればよいですか?]で説明しています。Borgを使いたい場合はVPSにBorgバックアップサーバーをセットアップするにはどうすればよいですか?]に従ってください。その下のディスクを暗号化するには、Linux VPSでストレージディスクをマウントしてフォーマットするにはどうすればよいですか?]をご覧ください。プランと条件はストレージVPSの月額費用はいくらですか?]に記載しています。
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以降が必要です。
出典 (10)
- Rest Server README: 使用する理由、追加専用モード、プライベートリポジトリ、htpasswd、TLS — restic project (read 2026-11-02)
- resticドキュメント: 新しいリポジトリの準備(SFTP、REST Server、B2) — restic project (read 2026-11-02)
- resticドキュメント: バックアップスナップショットの削除、追加専用モードのセキュリティに関する考慮事項 — restic project (read 2026-11-02)
- resticドキュメント: スクリプト、環境変数 — restic project (read 2026-11-02)
- restic ドキュメント:リファレンス、リポジトリの暗号化 — restic project (read 2026-11-02)
- resticリリース(2026年7月5日の0.19.1) — restic project on GitHub (read 2026-11-02)
- Debian trixieパッケージ restic-rest-server 0.13.0-2: サービスユニットとデフォルト — Debian (read 2026-11-02)
- Debian trixieパッケージ検索: restic 0.18.0 — Debian (read 2026-11-02)
- sshd_config(5): Match、ChrootDirectory、ForceCommand — OpenBSD project (OpenSSH) (read 2026-11-02)
- B2 Cloud Storageの料金 backblaze.com/cloud-storage/pricing — Backblaze (read 2026-11-02)