L'hôte du dépôt n'a qu'un seul rôle et presque aucune exigence. Il n'a pas besoin de cœurs, car il ne lit jamais vos données — il ne fait qu'héberger des blobs chiffrés qu'il ne peut pas ouvrir. Il n'a pas besoin de mémoire, car le travail de déduplication se fait sur la source. Il a besoin de disque, d'une adresse stable, et d'être ailleurs, là où les ennuis de la machine source ne le suivent pas.
Dans le panel : Commander → VPS → Sentinel, image Debian 12, et — c'est tout l'enjeu — un bastion différent de celui où tourne la source. Helsinki pour le travail, Reykjavík pour la garde. Aucune adresse e-mail n'est requise pour ouvrir le compte, et la facture se règle en Monero, Bitcoin, Lightning ou tout autre actif pris en charge, ce qui signifie que la seconde machine ne réintroduit pas l'identité que la première avait pris soin d'éviter.
| Dépôt cible |
Mensuel |
Stockage |
Working set hébergé |
Coût de restauration |
| Sentinel | $3.90 | 120 GB NVMe | ~30 GB | Rien — non facturée au volume |
| Garrison | $7.90 | 240 GB NVMe | ~70 GB | Rien — non facturée au volume |
| Ravelin | $16.90 | 480 GB NVMe | ~150 GB | Rien — non facturée au volume |
| Bulwark | $32.90 | 960 GB NVMe | ~300 GB | Rien — non facturée au volume |
| Stockage objet de classe S3 | ~$0.023/GB | Élastique | N'importe lequel | Sortie facturée au volume |
La colonne working set suppose des snapshots quotidiens conservés un an avec un taux de renouvellement normal ; un dépôt qui contient surtout des fichiers évoluant lentement va beaucoup plus loin, un dépôt plein de gros binaires réécrits va moins loin. La dernière ligne est là pour l'échelle, et pour le détail que tout le monde oublie jusqu'au jour où ça tourne mal : le stockage objet facture aussi le téléchargement, et c'est précisément ce que vous faites en cas d'urgence.
Sur la destination — un utilisateur sans privilège et un répertoire.
adduser --disabled-password --gecos "" backup
install -d -m 0700 -o backup -g backup /srv/restic/web01
L'utilisateur de sauvegarde n'a ni mot de passe, ni sudo, ni rien où se connecter. Il existe pour posséder un répertoire. Donnez-lui son propre répertoire par machine source si vous en sauvegardez plusieurs — un dépôt par source évite qu'une compromission sur une machine touche l'historique d'une autre.
Sur la source — une clé qui ne sert à rien d'autre.
ssh-keygen -t ed25519 -f /root/.ssh/id_backup -N "" -C "backup:web01"
cat /root/.ssh/id_backup.pub
Ne réutilisez pas votre clé de connexion habituelle. Celle-ci vit en clair sur le disque parce qu'un timer non surveillé doit s'en servir à trois heures du matin, ce qui est exactement le genre de clé que l'on veut cantonner à une seule destination et un seul usage.
Retour sur la destination — restreignez ce que cette clé peut faire. Collez la clé publique dans /home/backup/.ssh/authorized_keys avec un préfixe devant. Pour restic via SFTP :
restrict,from="198.51.100.7" ssh-ed25519 AAAAC3NzaC1lZDI1... backup:web01
L'option restrict désactive en un mot le port forwarding, l'agent forwarding, X11 et l'allocation de PTY, ne laissant que le transfert de fichiers et rien d'autre. La clause from= épingle la clé à l'adresse source, si bien qu'une copie volée sur le serveur est inutilisable ailleurs. Pour Borg, allez un cran plus loin et forcez la commande, c'est là que vit son mode append-only :
command="borg serve --append-only --restrict-to-path /srv/borg/web01",restrict ssh-ed25519 AAAAC3NzaC1lZDI1... borg:web01
Cette ligne concentre à elle seule toute la défense contre les rançongiciels : quoi que la source envoie, la destination ne fera jamais qu'exécuter borg serve, uniquement dans ce chemin, et uniquement dans un mode qui ajoute. Un shell root sur la source ne peut pas utiliser cette clé pour effacer le mois dernier.
Déclarez la destination une fois, sur la source. Placez-la dans /root/.ssh/config pour que toutes les commandes suivantes restent courtes et que l'adresse ne vive que dans un seul fichier :
Host rkv-repo
HostName 198.51.100.42
User backup
IdentityFile /root/.ssh/id_backup
IdentitiesOnly yes
Connectez-vous ensuite une fois à la main — ssh rkv-repo — pour accepter la clé de l'hôte. Un timer sans surveillance ne répondra pas à une invite d'empreinte, et une première sauvegarde qui se bloque silencieusement pendant une semaine est un classique. Tant que vous êtes sur la destination, faites-lui subir le même traitement qu'à toute autre machine que vous possédez : exécutez-y aussi la checklist de durcissement de la première heure. Elle héberge une copie de tout, et mérite l'heure complète.