# Restic: REST server czy SFTP do backupów na storage VPS?

> Restic: REST server czy SFTP do backupów na VPS? rest-server dodaje --append-only i --private-repos; SFTP wymaga tylko SSH. 1 TB $1.66, kryptowaluta, bez ID.

- URL: https://coffervale.com/pl/restic-rest-server-vs-sftp/
- Ostatnia aktualizacja: 2026-11-02
- Wydawca: Coffervale (https://coffervale.com)

Oba backendy przechowują to samo zaszyfrowane repozytorium w tym samym układzie folderów. Różnica polega na tym, kto może co usuwać, ile osób dzieli serwer i ile kosztuje protokół w sieci.

**Krótka odpowiedź — Restic: REST server czy SFTP do backupów na VPS?**

Do backupów restic na VPS używaj rest-server, gdy klienci nie mogą usuwać snapshotów: jego tryb `--append-only` odrzuca usunięcia, a `--private-repos` trzyma każdego użytkownika we własnym folderze. Używaj SFTP, gdy backupuje jedna zaufana maszyna i chcesz tylko SSH. Na storage VPS **Coffervale** 1 TB kosztuje $1.66 miesięcznie przy 12 miesiącach (2 November 2026).

## Jaka jest różnica między REST serverem restic a backendami SFTP?

| Funkcja | SFTP | rest-server |
| --- | --- | --- |
| Oprogramowanie na VPS | OpenSSH, już zainstalowany | rest-server (pakiet Debian 13 `restic-rest-server` lub obraz Docker `restic/rest-server`) |
| Transport | SSH | HTTP lub HTTPS, domyślnie port 8000 |
| Logowanie | Klucze SSH dla każdego konta Unix | Użytkownik i hasło HTTP z pliku htpasswd (bcrypt lub SHA) |
| Klient może usuwać stare snapshoty | Tak | Nie, z `--append-only` |
| Użytkownicy od siebie odseparowani | Konta Unix i uprawnienia do folderów | `--private-repos`: każdy użytkownik tylko pod `/<user>/` |
| Układ repozytorium na dysku | Taki sam jak w lokalnym repozytorium | Taki sam jak w lokalnym repozytorium |
| Szyfrowanie repozytorium | restic, zawsze włączone | restic, zawsze włączone |

## Czy rest-server jest szybszy niż SFTP?

**Projekt rest-server twierdzi, że tak: w porównaniu z SFTP backend REST działa lepiej i skaluje się dalej.** W swoim README podaje powód: SFTP przesyła dane w porcjach o rozmiarze najwyżej 32 KiB i serwer potwierdza każdy pakiet, podczas gdy REST wysyła całe pliki przez HTTP. Samo HTTP usuwa też narzut TLS, bo restic i tak szyfruje wszystko, co wysyła; README dodaje, że HTTPS służy wtedy głównie do ochrony logowania. To twierdzenie samego projektu, a nie benchmark, który przeprowadziliśmy. Na VPS do przechowywania danych z dyskami twardymi to dyski i Twoje łącze wysyłowe często narzucają tempo, zanim zrobi to protokół.

Po stronie klienta SFTP ma jedną znaną niedogodność: dokumentacja restic zauważa, że serwery SFTP zamykają połączenia, gdy przez jakiś czas nic nie otrzymują, co mogą wywołać długie skany niezmienionych plików.

## Kiedy zwykły SFTP jest lepszym wyborem?

**Gdy jedna zaufana maszyna robi kopię zapasową na własne konto i nie chcesz dodatkowej usługi, dodatkowego portu ani niczego nowego do łatanie.** restic potrzebuje tylko `restic -r sftp:user@host:/path init` i klucza SSH bez monitu o hasło, bo automatyczna kopia zapasowa nie może się zatrzymać, żeby o nie zapytać. Słabość jest ta, która najbardziej liczy się w walce z ransomware: kto kontroluje klienta, może też uruchomić `restic forget --prune` i usunąć każdy snapshot, bo SFTP nie ma trybu append-only.

Aby każde konto SFTP nie mogło przeglądać reszty serwera, OpenSSH może zamknąć je we własnym folderze bez shella:

*/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
```

*Konto, chroot i repozytorium, jako root na VPS; klient używa wtedy 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
```

## Jak uruchomić rest-server z append-only i prywatnymi repozytoriami?

**Na Debianie 13 zainstaluj `restic-rest-server`, wskaż folder danych poza `/home` i przekaż `--append-only --private-repos` oraz TLS w pliku domyślnym usługi.** Spakowana usługa działa jako użytkownik `restic-rest-server`, czyta `BACKUP_DIR`, `LISTEN` i `ARGS` z `/etc/default/restic-rest-server`, odmawia startu, dopóki `BACKUP_DIR` nie jest ustawione, i ukrywa `/home` przed daemonem. Z `--private-repos` użytkownik `laptop` może otwierać tylko repozytoria pod `/laptop/`, więc kilka osób może dzielić jeden VPS do przechowywania danych, nie widząc swoich snapshotów. Samopodpisany certyfikat wystarczy, bo klient przypina go przez `--cacert`.

*Na VPS do przechowywania danych, jako 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
```

*Na kliencie: dane uwierzytelniające w prywatnym pliku, nie w 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
```

## Jak przycinać snapshoty, gdy rest-server działa w trybie append-only?

**Uruchom `forget --prune` z zaufanej maszyny administracyjnej przez ścieżkę, która nie jest append-only, i zapisz politykę przez `--keep-within`.** rest-server trzyma repozytorium w tym samym układzie co lokalne repozytorium, więc SFTP jako root dociera do dokładnie tego samego folderu, a hasła do repozytorium nigdy nie trzeba wpisywać na VPS.

Część `--keep-within` ma znaczenie. Dokumentacja restic opisuje atakującego, który dodaje puste snapshoty do repozytorium append-only, aby polityka taka jak jeden snapshot na tydzień usunęła te prawdziwe; polityka oparta na czasie zachowuje i śmieci, i prawdziwe snapshoty. Pomaga tylko wtedy, gdy zegar systemowy jest prawidłowy, kiedy `forget` się uruchamia, i nie jest powodem, by pominąć najpierw spojrzenie na `restic snapshots`.

*Z maszyny administracyjnej, nigdy z klienta*

```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%
```

## Który backend wybrać?

**Wybierz rest-server, gdy maszyna z kopią zapasową jest wystawiona do internetu; wybierz SFTP dla jednej, dobrze utrzymanej maszyny, gdzie prostota wygrywa.** Cel append-only nie może zostać opróżniony przez atakującego, który szyfruje Twój serwer, i ta jedna właściwość przeważa nad dodatkowym daemonem.

| Twoja sytuacja | Backend | Dlaczego |
| --- | --- | --- |
| Jeden laptop lub komputer stacjonarny, jedno konto | SFTP | Nic do zainstalowania, brak nowego portu |
| Publiczne serwery, które mogą zostać zhakowane | rest-server `--append-only` | Skradziony klient nie może usunąć historii |
| Kilka osób lub maszyn na jednym VPS | rest-server `--private-repos` | Każde logowanie widzi tylko swój folder |
| Z sieci wychodzi tylko HTTP lub HTTPS | rest-server | Działa tam, gdzie SSH jest zablokowane |
| Oba: klienty append-only, administrator przycina | rest-server dla klientów, SFTP jako root dla administratora | Ten sam folder, dwa poziomy dostępu |

## Ile kosztuje 1 TB w restic?

**Według badania Coffervale z 2 listopada 2026 Backblaze B2, magazyn obiektowy natywnie obsługiwany przez restic, kosztował $6.95 za TB miesięcznie, a plany storage VPS u dostawców przyjmujących kryptowaluty bez dokumentu tożsamości miały medianę $4.00 za TB.** Magazyn obiektowy nie wymaga serwera do utrzymania, ale nie oferuje żadnego z dwóch omawianych tu backendów; storage VPS obsługuje oba. Nie wykonujemy kopii zapasowej Twojego serwera ani nie przechowujemy kopii Twoich danych nigdzie indziej, więc to, co znajduje się na storage VPS Coffervale, powinno być jedną z Twoich kopii, nigdy jedyną: VPS to Twoja kopia off-site, jak wyjaśnia [Jak używać VPS do kopii zapasowych off-site?](https://coffervale.com/pl/backup-vps/ "Off-site backups and the 3-2-1 rule")]. Jeśli wolisz Borg, postępuj według [Jak skonfigurować serwer kopii zapasowych Borg na VPS?](https://coffervale.com/pl/borg-backup-server-on-a-vps/ "Borg server with append-only keys")]; aby zaszyfrować dysk pod spodem, zobacz [Jak zamontować i sformatować dysk storage na Linux VPS?](https://coffervale.com/pl/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk")]. Plany i warunki znajdziesz na [Ile kosztuje storage VPS miesięcznie?](https://coffervale.com/pl/pricing/ "Coffervale storage VPS prices")].

## Pytania o restic na VPS

### Czy restic przez SFTP jest szyfrowany?

Dwa razy. restic szyfruje każdy przechowywany plik algorytmem AES-256 i uwierzytelnia go za pomocą Poly1305-AES przed wysłaniem, a SSH szyfruje połączenie. VPS przechowuje wyłącznie zaszyfrowane dane.

### Czy rest-server potrzebuje HTTPS, skoro restic już szyfruje dane?

Tak, ze względu na logowanie. Bez TLS nazwa użytkownika i hasło HTTP przechodzą przez sieć jawnym tekstem, a każdy, kto je przechwyci, może zapisywać do Twojego repozytorium. Użyj `--tls` albo trzymaj rest-server na localhost i łącz się z nim przez tunel SSH.

### Czy rest-server i SFTP mogą obsługiwać to samo repozytorium?

Tak. Oba używają tego samego układu folderów co repozytorium lokalne, więc klienci mogą zapisywać przez rest-server w trybie append-only, podczas gdy administrator usuwa stare dane z tego samego folderu przez SFTP.

### Na którym porcie nasłuchuje rest-server?

Domyślnie na porcie 8000 na wszystkich adresach. Otwórz go w zaporze tylko dla adresów, które robią kopie zapasowe, albo przypisz go do prywatnego adresu, np. interfejsu WireGuard.

### Którą wersję restic powinienem uruchamiać?

Najnowszym wydaniem na 2 listopada 2026 był restic 0.19.1 z 5 lipca 2026; Debian 13 dostarcza 0.18.0. Wersja formatu repozytorium 2, obecna domyślna, wymaga restic 0.14.0 lub nowszego na każdej maszynie, która je otwiera.

## Źródła

1. [Rest Server README: po co go używać, tryb append-only, prywatne repozytoria, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [Dokumentacja restic: Przygotowanie nowego repozytorium (SFTP, REST Server, B2)](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [Dokumentacja restic: Usuwanie snapshotów kopii zapasowych, kwestie bezpieczeństwa w trybie append-only](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [Dokumentacja restic: Skrypty, zmienne środowiskowe](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [Dokumentacja restic: References, repository encryption](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [Wydania restic (0.19.1 z 5 lipca 2026)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Pakiet Debian trixie restic-rest-server 0.13.0-2: unit usługi i wartości domyślne](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Wyszukiwanie pakietów 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. [Cennik B2 Cloud Storage](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: Coffervale sprzedaje storage VPS w Europie: serwery KVM z od 500 GB do 8 TB przestrzeni HDD na kopie zapasowe poza siedzibą, Nextcloud, Seafile, Syncthing i archiwa, z płatnością kryptowalutą i bez dokumentu tożsamości przy rejestracji. Serwery działają w Amsterdamie, Bukareszcie i Kiszyniowie, a operatorem jest DomaineGoat LLC, firma zarejestrowana w Panamie. W rozliczeniu 12-miesięcznym każdy plan jest wyceniony co najmniej 25% miesięcznie poniżej wskazanego porównywalnego storage VPS, wybranego spośród 10 hostów krypto bez KYC, których ceny odczytano 2 listopada 2026 r.
