Files
agence66-borgmatic/docs/SSH-SETUP.md
BeauTroll 24d3e7d914 Anonymize sensitive information and add SSH setup documentation
Documentation:
- Add comprehensive SSH key setup guide in docs/SSH-SETUP.md
- Add SSH configuration sections to README.md and QUICKSTART.md
- Replace specific provider examples with generic alternatives
- Remove Hetzner/BorgBase specific instructions for broader applicability

Anonymization:
- Remove company/project specific names (Agence66 → generic)
- Generalize service names (/srv/app → /srv/*)
- Remove detailed application lists (/opt/nextcloud, etc. → /opt/*)
- Replace specific usernames and hostnames with placeholders
- Change repository label from 'serveur' to 'production'

Files updated:
- README.md: Add SSH setup, anonymize content
- QUICKSTART.md: Add SSH configuration steps
- CHANGELOG.md: Generalize paths list
- config.yaml: Generic title and label
- install.sh: Remove branding
- scripts/healthcheck.sh: Remove branding
- docs/SSH-SETUP.md: New comprehensive SSH guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 06:31:56 +01:00

5.8 KiB

Configuration SSH pour Borgmatic

Guide complet pour configurer l'authentification SSH par clé pour les backups distants.

Pourquoi utiliser des clés SSH ?

  • Automatisation : Pas de mot de passe à saisir manuellement
  • Sécurité : Plus sécurisé qu'un mot de passe
  • Requis : Nécessaire pour que le timer systemd fonctionne automatiquement

Configuration étape par étape

1. Générer une clé SSH

# Se connecter en root
sudo su -

# Générer une clé Ed25519 (recommandé)
ssh-keygen -t ed25519 -C "borgmatic-backup@$(hostname)"

# Ou RSA si Ed25519 n'est pas supporté
ssh-keygen -t rsa -b 4096 -C "borgmatic-backup@$(hostname)"

Réponses aux questions :

Enter file in which to save the key (/root/.ssh/id_ed25519): [Entrée]
Enter passphrase (empty for no passphrase): [Entrée - laisser vide]
Enter same passphrase again: [Entrée]

Important : Laissez la passphrase vide pour permettre l'automatisation.

2. Vérifier que la clé a été créée

ls -la /root/.ssh/
# Vous devriez voir :
# id_ed25519      (clé privée - à garder secrète)
# id_ed25519.pub  (clé publique - à copier sur le serveur)

3. Copier la clé sur le serveur distant

Méthode automatique (recommandée)

# Syntaxe générale
ssh-copy-id -p PORT user@backup-server.com

# Exemples
ssh-copy-id -p 22 backup@backup.example.com
ssh-copy-id -p 2222 user@192.168.1.100

Saisissez le mot de passe du serveur une dernière fois.

Méthode manuelle

Si ssh-copy-id ne fonctionne pas :

# 1. Afficher votre clé publique
cat /root/.ssh/id_ed25519.pub

# 2. Se connecter au serveur distant
ssh -p PORT user@backup-server.com

# 3. Sur le serveur distant, ajouter la clé
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "VOTRE_CLE_PUBLIQUE_ICI" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exit

4. Tester la connexion

# Tester sans mot de passe
ssh -p PORT user@backup-server.com

# Si ça fonctionne, vous êtes connecté directement !
# Tapez 'exit' pour revenir

Si on vous demande toujours un mot de passe :

  • Vérifiez les permissions : chmod 600 /root/.ssh/id_ed25519
  • Vérifiez le serveur : ssh -v -p PORT user@backup-server.com (mode verbeux)

Cas spécifiques

Serveurs avec interface web

Certains fournisseurs de stockage backup proposent une interface web pour gérer les clés SSH :

  1. Connectez-vous à l'interface web de votre fournisseur
  2. Cherchez la section "SSH Keys" ou "Authentification"
  3. Cliquez sur "Add SSH key" ou équivalent
  4. Collez le contenu de /root/.ssh/id_ed25519.pub
  5. Sauvegardez

Serveur VPS/Dédié

Pour un serveur standard avec accès SSH :

# Copie standard avec ssh-copy-id
sudo ssh-copy-id -p 22 user@backup-server.com

# Ou méthode manuelle
ssh -p PORT user@backup-server.com
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "VOTRE_CLE_PUBLIQUE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exit

Configuration avancée

Utiliser une clé SSH spécifique

Si vous voulez utiliser une clé dédiée uniquement pour Borgmatic :

# 1. Générer une clé dédiée
ssh-keygen -t ed25519 -f /root/.ssh/borgmatic_ed25519 -C "borgmatic-only"

# 2. Copier cette clé spécifique
ssh-copy-id -i /root/.ssh/borgmatic_ed25519.pub -p PORT user@backup-server.com

# 3. Configurer dans /etc/borgmatic/.env
echo 'BORG_RSH="ssh -i /root/.ssh/borgmatic_ed25519"' >> /etc/borgmatic/.env

Config SSH personnalisée

Créez /root/.ssh/config :

Host backup-server
    HostName backup.example.com
    Port 22
    User backupuser
    IdentityFile /root/.ssh/borgmatic_ed25519
    StrictHostKeyChecking accept-new

Puis dans votre repository :

repositories:
    - path: ssh://backup-server/./backups
      label: serveur

Vérification et troubleshooting

Vérifier que tout fonctionne

# 1. Test SSH
ssh -p PORT user@backup-server.com
# ✅ Doit se connecter SANS demander de mot de passe

# 2. Test Borg
source /etc/borgmatic/.env
borg list $BORG_REPO
# ✅ Doit lister les archives SANS demander de mot de passe

# 3. Test Borgmatic
make dry-run
# ✅ Doit fonctionner SANS demander de mot de passe

Problèmes courants

"Permission denied (publickey)"

# Vérifier les permissions de la clé privée
chmod 600 /root/.ssh/id_ed25519

# Vérifier que la clé est bien copiée sur le serveur
ssh -v -p PORT user@backup-server.com 2>&1 | grep "Offering public key"

"Host key verification failed"

# Ajouter le serveur aux known hosts
ssh-keyscan -p PORT backup-server.com >> /root/.ssh/known_hosts

Borgmatic demande toujours le mot de passe

# Vérifier que SSH fonctionne bien sans mot de passe
ssh -p PORT user@backup-server.com

# Vérifier les variables d'environnement
sudo cat /etc/borgmatic/.env | grep BORG_RSH

Sécurité

Bonnes pratiques

  1. Clé dédiée : Utilisez une clé SSH spécifique pour les backups
  2. Restrictions : Limitez la clé aux commandes Borg uniquement (côté serveur)
  3. Rotation : Changez les clés régulièrement (annuellement)
  4. Backup : Sauvegardez votre clé privée en lieu sûr

Limiter les commandes autorisées (serveur)

Sur le serveur de backup, dans ~/.ssh/authorized_keys :

command="borg serve --restrict-to-path /path/to/repo",restrict ssh-ed25519 AAAAC3... borgmatic-backup

Cela limite la clé SSH à uniquement exécuter Borg sur ce chemin spécifique.

Automatisation avec le timer systemd

Une fois la clé SSH configurée, le timer systemd fonctionnera automatiquement :

# Le service systemd utilisera automatiquement la clé SSH de root
systemctl status borgmatic.timer

# Les backups s'exécuteront à 3h du matin sans intervention

Configuration terminée ! Les backups automatiques peuvent maintenant fonctionner sans intervention manuelle.