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:
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_keysComo 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.
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 ~/PicturesComo 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.
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%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?. Se você preferir usar o Borg, siga Como configuro um servidor de backup Borg em um VPS?; para criptografar o disco por baixo, veja Como monto e formato o disco de armazenamento em um VPS Linux?. Planos e termos estão em Quanto custa um VPS de armazenamento por mês?.
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 (10)
- README do Rest Server: por que usá-lo, modo append-only, repositórios privados, htpasswd, TLS — restic project (read 2026-11-02)
- Documentação do restic: Preparando um novo repositório (SFTP, REST Server, B2) — restic project (read 2026-11-02)
- Documentação do restic: Removendo snapshots de backup, considerações de segurança no modo append-only — restic project (read 2026-11-02)
- Documentação do restic: Scripting, variáveis de ambiente — restic project (read 2026-11-02)
- Documentação do restic: References, repository encryption — restic project (read 2026-11-02)
- Releases do restic (0.19.1 de 5 de julho de 2026) — restic project on GitHub (read 2026-11-02)
- Pacote restic-rest-server 0.13.0-2 do Debian trixie: service unit e padrões — Debian (read 2026-11-02)
- Busca de pacotes do Debian trixie: restic 0.18.0 — Debian (read 2026-11-02)
- sshd_config(5): Match, ChrootDirectory, ForceCommand — OpenBSD project (OpenSSH) (read 2026-11-02)
- Preços do B2 Cloud Storage backblaze.com/cloud-storage/pricing — Backblaze (read 2026-11-02)