# Restic: REST server ou SFTP para backups em um storage VPS?

> Restic: REST server ou SFTP para backups em VPS? O rest-server adiciona --append-only e --private-repos; o SFTP só precisa de SSH. 1 TB $1.66, cripto, sem ID.

- URL: https://coffervale.com/pt/restic-rest-server-vs-sftp/
- Última atualização: 2026-11-02
- Editor: Coffervale (https://coffervale.com)

Os dois backends armazenam o mesmo repositório criptografado no mesmo layout de pastas. A diferença é quem pode excluir o quê, quantas pessoas compartilham o servidor e quanto o protocolo custa na rede.

**Resposta rápida — Restic: REST server ou SFTP para backups em um VPS?**

Para backups do restic em um VPS, use o rest-server quando os clientes não puderem excluir snapshots: o modo `--append-only` dele recusa exclusões e o `--private-repos` mantém cada usuário na própria pasta. Use SFTP quando uma única máquina confiável faz o backup e você quer apenas SSH. Em um storage VPS **Coffervale**, 1 TB custa $1.66 por mês no plano de 12 meses (2 November 2026).

## Qual é a diferença entre o REST server do restic e os backends SFTP?

| Recurso | SFTP | rest-server |
| --- | --- | --- |
| Software no VPS | OpenSSH, já instalado | rest-server (pacote do Debian 13 `restic-rest-server`, ou a imagem Docker `restic/rest-server`) |
| Transporte | SSH | HTTP ou HTTPS, porta 8000 por padrão |
| Login | Chaves SSH por conta Unix | Usuário e senha HTTP a partir de um arquivo htpasswd (bcrypt ou SHA) |
| O cliente pode excluir snapshots antigos | Sim | Não, com `--append-only` |
| Usuários separados | Contas Unix e permissões de pasta | `--private-repos`: cada usuário apenas em `/<user>/` |
| Layout do repositório em disco | Igual a um repositório local | Igual a um repositório local |
| Criptografia do repositório | restic, sempre ativada | restic, sempre ativada |

## O rest-server é mais rápido que o SFTP?

**O projeto rest-server diz que sim: comparado ao SFTP, o backend REST tem desempenho melhor e escala mais.** O README explica o motivo: o SFTP transfere dados em blocos de no máximo 32 KiB e o servidor confirma cada pacote, enquanto o REST envia arquivos inteiros via HTTP. O HTTP puro também elimina a sobrecarga do TLS, já que o restic criptografa tudo o que envia; o README acrescenta que o HTTPS então serve principalmente para proteger o login. Essa é a afirmação do próprio projeto, não um benchmark que executamos. Em um VPS de armazenamento com discos rígidos, os discos e seu uplink muitas vezes ditam o ritmo antes do protocolo.

No lado do cliente, o SFTP tem um incômodo conhecido: a documentação do restic observa que servidores SFTP fecham conexões quando ficam um tempo sem receber nada, o que varreduras longas de arquivos inalterados podem acionar.

## Quando o SFTP puro é a melhor escolha?

**Quando uma máquina em que você confia faz backup para a própria conta e você não quer nenhum serviço extra, nenhuma porta extra e nada novo para aplicar patches.** O restic precisa apenas de `restic -r sftp:user@host:/path init` e de uma chave SSH sem prompt de passphrase, já que um backup automático não pode parar para pedi-la. A fraqueza é a que mais importa contra ransomware: quem controla o cliente também pode executar `restic forget --prune` e excluir todos os snapshots, porque o SFTP não tem modo append-only.

Para impedir que cada conta SFTP navegue pelo resto do servidor, o OpenSSH pode prendê-la na própria pasta sem 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
```

*Conta, chroot e repositório, como root no VPS; o cliente então 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
```

## Como executo o rest-server com repositórios append-only e privados?

**No Debian 13, instale o `restic-rest-server`, aponte-o para uma pasta de dados fora de `/home` e passe `--append-only --private-repos` mais TLS no arquivo de defaults.** O serviço empacotado roda como o usuário `restic-rest-server`, lê `BACKUP_DIR`, `LISTEN` e `ARGS` de `/etc/default/restic-rest-server`, recusa iniciar até que `BACKUP_DIR` esteja definido e oculta `/home` do daemon. Com `--private-repos`, o usuário `laptop` só pode abrir repositórios em `/laptop/`, então várias pessoas podem compartilhar um único VPS de armazenamento sem ver os snapshots umas das outras. Um certificado autoassinado basta, porque o cliente o fixa com `--cacert`.

*No VPS de armazenamento, como 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
```

*No cliente: credenciais em um arquivo privado, não na 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
```

## Como faço prune dos snapshots quando o rest-server é append-only?

**Execute `forget --prune` de uma máquina de administração confiável por um caminho que não seja append-only, e escreva a política com `--keep-within`.** O rest-server mantém o repositório no mesmo layout de um repositório local, então o SFTP como root chega à mesma pasta, e a senha do repositório nunca precisa ser digitada no VPS.

A parte do `--keep-within` importa. A documentação do restic descreve um atacante que adiciona snapshots vazios a um repositório append-only para que uma política como um snapshot por semana descarte os verdadeiros; uma política baseada em tempo mantém tanto o lixo quanto os snapshots genuínos. Ela só ajuda enquanto o relógio do sistema estiver certo quando o `forget` roda, e não é motivo para deixar de dar uma olhada no `restic snapshots` primeiro.

*Da máquina de administração, nunca do cliente*

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

## Qual backend devo escolher?

**Escolha o rest-server sempre que a máquina que recebe backup estiver exposta à internet; escolha o SFTP para uma única máquina bem cuidada, onde a simplicidade vence.** Um destino append-only não pode ser esvaziado pelo atacante que criptografa seu servidor, e essa única propriedade supera o daemon extra.

| Sua situação | Backend | Por quê |
| --- | --- | --- |
| Um laptop ou desktop, uma conta | SFTP | Nada para instalar, nenhuma porta nova |
| Servidores públicos que podem ser invadidos | rest-server `--append-only` | Um cliente roubado não consegue excluir o histórico |
| Várias pessoas ou máquinas em um VPS | rest-server `--private-repos` | Cada login vê apenas a própria pasta |
| Apenas HTTP ou HTTPS permitidos saindo da rede | rest-server | Funciona onde o SSH está bloqueado |
| Ambos: clientes append-only, admin faz prune | rest-server para clientes, SFTP como root para o admin | Mesma pasta, dois níveis de acesso |

## Quanto custa um destino restic por TB?

**Segundo o levantamento da Coffervale de 2 de novembro de 2026, o Backblaze B2, um object store que o restic suporta nativamente, custava $6.95 por TB por mês, enquanto os planos de VPS de armazenamento de provedores que aceitam cripto sem documento de identidade tinham uma mediana de $4.00 por TB.** Um object store não exige servidor para manter, mas não oferece nenhum dos dois backends discutidos aqui; um VPS de armazenamento roda os dois. Não fazemos backup do seu servidor e não guardamos cópia dos seus dados em nenhum outro lugar, então o que fica em um storage VPS da Coffervale deve ser uma das suas cópias, nunca a única: o VPS é a sua cópia off-site, como explica [Como uso um VPS para backups off-site?](https://coffervale.com/pt/backup-vps/ "Off-site backups and the 3-2-1 rule"). Se você preferir usar o Borg, siga [Como configuro um servidor de backup Borg em um VPS?](https://coffervale.com/pt/borg-backup-server-on-a-vps/ "Borg server with append-only keys"); para criptografar o disco por baixo, veja [Como monto e formato o disco de armazenamento em um VPS Linux?](https://coffervale.com/pt/mount-storage-disk-on-a-vps/ "Format, mount and encrypt the data disk"). Planos e termos estão em [Quanto custa um VPS de armazenamento por mês?](https://coffervale.com/pt/pricing/ "Coffervale storage VPS prices").

## Perguntas sobre restic em um VPS

### O restic via SFTP é criptografado?

Duas vezes. O restic criptografa cada arquivo que armazena com AES-256 e o autentica com Poly1305-AES antes do upload, e o SSH criptografa a conexão. O VPS só guarda texto cifrado.

### O rest-server precisa de HTTPS se o restic já criptografa os dados?

Sim, para o login. Sem TLS, o usuário e a senha HTTP trafegam pela rede em texto claro, e qualquer um que os capture pode gravar no seu repositório. Use `--tls`, ou mantenha o rest-server em localhost e acesse-o por um túnel SSH.

### O rest-server e o SFTP podem servir o mesmo repositório?

Sim. Ambos usam o mesmo layout de pastas de um repositório local, então os clientes podem gravar por um rest-server em modo append-only enquanto um administrador faz prune da mesma pasta via SFTP.

### Em qual porta o rest-server escuta?

Porta 8000 em todos os endereços por padrão. Abra-a no firewall apenas para os endereços que fazem backup, ou vincule-a a um endereço privado, como uma interface WireGuard.

### Qual versão do restic devo usar?

A versão mais recente em 2 de novembro de 2026 era o restic 0.19.1, de 5 de julho de 2026; o Debian 13 traz a 0.18.0. O formato de repositório versão 2, o padrão atual, exige restic 0.14.0 ou mais novo em toda máquina que o abrir.

## Fontes

1. [README do Rest Server: por que usá-lo, modo append-only, repositórios privados, htpasswd, TLS](https://github.com/restic/rest-server) — restic project (read 2026-11-02)
2. [Documentação do restic: Preparando um novo repositório (SFTP, REST Server, B2)](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic project (read 2026-11-02)
3. [Documentação do restic: Removendo snapshots de backup, considerações de segurança no modo append-only](https://restic.readthedocs.io/en/stable/060_forget.html) — restic project (read 2026-11-02)
4. [Documentação do restic: Scripting, variáveis de ambiente](https://restic.readthedocs.io/en/stable/075_scripting.html) — restic project (read 2026-11-02)
5. [Documentação do restic: References, repository encryption](https://restic.readthedocs.io/en/stable/100_references.html) — restic project (read 2026-11-02)
6. [Releases do restic (0.19.1 de 5 de julho de 2026)](https://github.com/restic/restic/releases) — restic project on GitHub (read 2026-11-02)
7. [Pacote restic-rest-server 0.13.0-2 do Debian trixie: service unit e padrões](https://sources.debian.org/src/restic-rest-server/0.13.0-2/debian/) — Debian (read 2026-11-02)
8. [Busca de pacotes do 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. [Preços do B2 Cloud Storage](https://www.backblaze.com/cloud-storage/pricing) — Backblaze (read 2026-11-02)

---

Coffervale: A Coffervale vende storage VPS na Europa: servidores KVM com 500 GB a 8 TB de armazenamento em HDD para backups off-site, Nextcloud, Seafile, Syncthing e arquivos, pagos com cripto e sem documento de identidade no cadastro. Os servidores rodam em Amsterdã, Bucareste e Chișinău, e o operador é a DomaineGoat LLC, empresa registrada no Panamá. No prazo de 12 meses, todo plano custa pelo menos 25% a menos por mês que um storage VPS comparável nomeado, escolhido entre 10 provedores cripto sem KYC cujos preços foram lidos em 2 de novembro de 2026.
