# Restic: REST server o SFTP per i backup su un storage VPS?

> Restic: REST server o SFTP per i backup su un VPS? rest-server aggiunge --append-only; SFTP richiede solo SSH. 1 TB $1.66, cripto, senza documenti.

- URL: https://coffervale.com/it/restic-rest-server-vs-sftp/
- Ultimo aggiornamento: 2026-11-02
- Editore: Coffervale (https://coffervale.com)

Entrambi i backend archiviano lo stesso repository cifrato nella stessa struttura di cartelle. La differenza è chi può eliminare cosa, quante persone condividono il server e quanto costa il protocollo sulla rete.

**Risposta rapida — Restic: REST server o SFTP per i backup su un VPS?**

Per i backup restic su un VPS, usa rest-server quando i client non devono poter eliminare gli snapshot: la sua modalità `--append-only` rifiuta le cancellazioni e `--private-repos` mantiene ogni utente nella propria cartella. Usa SFTP quando fa il backup una sola macchina fidata e non vuoi altro che SSH. Su un **Coffervale** storage VPS, 1 TB costa $1.66 al mese su 12 mesi (2 November 2026).

## Qual è la differenza tra il REST server di restic e i backend SFTP?

| Funzionalità | SFTP | rest-server |
| --- | --- | --- |
| Software sul VPS | OpenSSH, già installato | rest-server (pacchetto Debian 13 `restic-rest-server`, o l'immagine Docker `restic/rest-server`) |
| Trasporto | SSH | HTTP o HTTPS, porta 8000 per impostazione predefinita |
| Login | Chiavi SSH per account Unix | Utente e password HTTP da un file htpasswd (bcrypt o SHA) |
| Il client può eliminare i vecchi snapshot | Sì | No, con `--append-only` |
| Utenti tenuti separati | Account Unix e permessi delle cartelle | `--private-repos`: ogni utente solo sotto `/<user>/` |
| Struttura del repository su disco | Come un repository locale | Come un repository locale |
| Cifratura del repository | restic, sempre attiva | restic, sempre attiva |

## rest-server è più veloce di SFTP?

**Il progetto rest-server dice di sì: rispetto a SFTP, il backend REST offre prestazioni migliori e scala di più.** Il suo README ne spiega il motivo: SFTP trasferisce i dati in blocchi di al massimo 32 KiB e il server conferma ogni pacchetto, mentre REST invia file interi su HTTP. Il semplice HTTP elimina anche l'overhead di TLS, dato che restic cifra già tutto ciò che invia; il README aggiunge che HTTPS serve poi soprattutto a proteggere il login. È un'affermazione del progetto stesso, non un benchmark che abbiamo eseguito noi. Su un VPS di storage con dischi rigidi, spesso sono i dischi e la tua banda in upload a dettare il passo prima del protocollo.

Lato client, SFTP ha un fastidio noto: la documentazione di restic segnala che i server SFTP chiudono le connessioni quando non ricevono nulla per un po', cosa che le scansioni lunghe di file invariati possono innescare.

## Quando è meglio il semplice SFTP?

**Quando una macchina di cui ti fidi esegue il backup sul proprio account e non vuoi servizi aggiuntivi, porte aggiuntive né nulla di nuovo da aggiornare.** restic ha bisogno solo di `restic -r sftp:user@host:/path init` e di una chiave SSH senza richiesta di passphrase, dato che un backup automatico non può fermarsi a chiederla. La debolezza è quella che conta di più contro il ransomware: chi controlla il client può anche eseguire `restic forget --prune` ed eliminare ogni snapshot, perché SFTP non ha una modalità append-only.

Per impedire a ogni account SFTP di curiosare nel resto del server, OpenSSH può confinarlo nella propria cartella senza shell:

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

*Account, chroot e repository, come root sul VPS; il client poi usa 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
```

## Come eseguo rest-server con repository append-only e privati?

**Su Debian 13, installa `restic-rest-server`, puntalo a una cartella dati fuori da `/home` e passa `--append-only --private-repos` più TLS nel suo file dei default.** Il servizio del pacchetto gira come utente `restic-rest-server`, legge `BACKUP_DIR`, `LISTEN` e `ARGS` da `/etc/default/restic-rest-server`, rifiuta di avviarsi finché `BACKUP_DIR` non è impostato e nasconde `/home` al demone. Con `--private-repos`, l'utente `laptop` può aprire solo repository sotto `/laptop/`, così più persone possono condividere un unico VPS di storage senza vedere gli snapshot altrui. Un certificato autofirmato basta, perché il client lo fissa con `--cacert`.

*Sul VPS di storage, come 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
```

*Sul client: credenziali in un file privato, non nell'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
```

## Come faccio il prune degli snapshot quando rest-server è append-only?

**Esegui `forget --prune` da una macchina admin fidata su un percorso che non è append-only, e scrivi la policy con `--keep-within`.** rest-server mantiene il repository nella stessa struttura di un repository locale, quindi SFTP come root raggiunge la stessa identica cartella e la password del repository non va mai digitata sul VPS.

La parte `--keep-within` conta. La documentazione di restic descrive un attaccante che aggiunge snapshot vuoti a un repository append-only così che una policy come uno snapshot a settimana elimini quelli veri; una policy basata sul tempo conserva sia i rifiuti sia gli snapshot autentici. Aiuta solo se l'orologio di sistema è corretto quando gira `forget`, e non è un motivo per saltare un'occhiata a `restic snapshots` prima.

*Dalla macchina admin, mai dal client*

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

## Quale backend scelgo?

**Scegli rest-server ogni volta che la macchina di cui fai il backup è esposta a internet; scegli SFTP per un'unica macchina ben curata dove vince la semplicità.** Un target append-only non può essere svuotato dall'attaccante che cifra il tuo server, e questa sola proprietà vale più del demone in più.

| La tua situazione | Backend | Perché |
| --- | --- | --- |
| Un solo laptop o desktop, un solo account | SFTP | Niente da installare, nessuna porta nuova |
| Server pubblici che potrebbero essere compromessi | rest-server `--append-only` | Un client rubato non può cancellare la cronologia |
| Più persone o macchine su un solo VPS | rest-server `--private-repos` | Ogni login vede solo la propria cartella |
| Dalla rete è consentito uscire solo su HTTP o HTTPS | rest-server | Funziona dove SSH è bloccato |
| Entrambi: client in append-only, admin fa il prune | rest-server per i client, SFTP come root per l'admin | Stessa cartella, due livelli di accesso |

## Quanto costa un target restic per TB?

**Secondo l'indagine di Coffervale del 2 novembre 2026, Backblaze B2, un object store supportato nativamente da restic, costava $6.95 per TB al mese, mentre i piani VPS per storage di host che accettano criptovalute senza documento d'identità avevano una mediana di $4.00 per TB.** Un object store non richiede nessun server da mantenere ma non offre nessuno dei due backend discussi qui; un VPS per storage li esegue entrambi. Non facciamo backup del tuo server e non teniamo copia dei tuoi dati da nessun'altra parte, quindi ciò che sta su uno storage VPS di Coffervale dovrebbe essere una delle tue copie, mai l'unica: il VPS è la tua copia off-site, come spiega [Come uso un VPS per i backup off-site?](https://coffervale.com/it/backup-vps/ "Off-site backups and the 3-2-1 rule"). Se preferisci usare Borg, segui [Come configuro un server di backup Borg su un VPS?](https://coffervale.com/it/borg-backup-server-on-a-vps/ "Borg server with append-only keys"); per cifrare il disco sottostante, vedi [Come monto e formatto il disco di storage su un VPS Linux?](https://coffervale.com/it/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk"). Piani e condizioni sono su [Quanto costa un VPS per storage al mese?](https://coffervale.com/it/pricing/ "Coffervale storage VPS prices").

## Domande su restic su un VPS

### restic via SFTP è cifrato?

Due volte. restic cifra ogni file che memorizza con AES-256 e lo autentica con Poly1305-AES prima dell'upload, e SSH cifra la connessione. Il VPS contiene sempre e solo testo cifrato.

### rest-server ha bisogno di HTTPS se restic cifra già i dati?

Sì, per il login. Senza TLS, utente e password HTTP attraversano la rete in chiaro, e chiunque li intercetti può scrivere nel tuo repository. Usa `--tls`, oppure tieni rest-server su localhost e raggiungilo tramite un tunnel SSH.

### rest-server e SFTP possono servire lo stesso repository?

Sì. Entrambi usano la stessa struttura di cartelle di un repository locale, quindi i client possono scrivere tramite un rest-server in modalità append-only mentre un amministratore esegue il prune della stessa cartella via SFTP.

### Su quale porta ascolta rest-server?

La porta 8000 su tutti gli indirizzi per impostazione predefinita. Aprila nel firewall solo verso gli indirizzi che fanno backup, oppure vincolala a un indirizzo privato come un'interfaccia WireGuard.

### Quale versione di restic dovrei usare?

L'ultima release al 2 novembre 2026 era restic 0.19.1, del 5 luglio 2026; Debian 13 include la 0.18.0. Il formato di repository versione 2, l'attuale predefinito, richiede restic 0.14.0 o successivo su ogni macchina che lo apre.

## Fonti

1. [Rest Server README: perché usarlo, modalità append-only, repository privati, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [Documentazione restic: Preparare un nuovo repository (SFTP, REST Server, B2)](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [Documentazione restic: Rimuovere gli snapshot di backup, considerazioni di sicurezza in modalità append-only](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [Documentazione restic: Scripting, variabili d'ambiente](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [Documentazione di restic: References, repository encryption](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [Release di restic (0.19.1 del 5 luglio 2026)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Pacchetto Debian trixie restic-rest-server 0.13.0-2: unit del servizio e valori predefiniti](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Ricerca pacchetti 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. [Prezzi di B2 Cloud Storage](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: Coffervale vende VPS di storage in Europa: server KVM con da 500 GB a 8 TB di spazio HDD per backup off-site, Nextcloud, Seafile, Syncthing e archivi, pagabili in criptovalute senza documenti all'iscrizione. I server girano ad Amsterdam, Bucarest e Chișinău e l'operatore è DomaineGoat LLC, una società registrata a Panama. Con il contratto di 12 mesi, ogni piano costa almeno il 25% in meno al mese rispetto a un VPS di storage comparabile indicato per nome, scelto tra 10 host crypto senza KYC i cui prezzi sono stati letti il 2 novembre 2026.
