[[:rsync|rsync]]-a -H --compress --progress --stats root@aspirine:/srv /media/backup_aspirine/
en 42 heures …
Number of files: 2153593 Number of files transferred: 331881 Total file size: 1064410495272 bytes Total transferred file size: 294181546405 bytes Literal data: 294181546405 bytes Matched data: 0 bytes File list size: 73717185 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 203463780 Total bytes received: 249316161708 sent 203463780 bytes received 249316161708 bytes 1566699.58 bytes/sec total size is 1064410495272 speedup is 4.27
L'astuce est d'utiliser le champs option du fichier authorized_keys, et notamment l'option command.
Le champ option est généralement vide. L'option commande désigne la commande et/ou le script (ainsi que ses éventuels arguments) qui sera exécuté lors d'une connexion en utilisant cette clé. Une seule commande étant un peu limite, l'astuce est d'utiliser un script qui va vérifier si la commande à exécuter via ssh est autorisée ou pas. On pourra ainsi facilement mettre en place une “liste blanche” des commandes et scripts exécutables sur le serveur. (Attention de ne pas transformer votre serveur en gruyère par cette méthode)
ssh-keygen -t dsa -C "clé pour sauvegarde" -f ~/.ssh/sauvegarde ssh-copy-id -i ~/.ssh/sauvegarde root@backup
[[:vim|vim]]~root/.ssh/authorized_keys command="/root/.ssh/validate.sh" ssh-dss AAAAB3NzaC1kc3MAAACBAJR29GyUzPAGRdaENRENzper49c5yCFRB/R3CKtKUPLiOt465dLOc9vitl9jPQdR625F/74tXYe7kdbTyX9ydiLDqcL93mbHzLyDQCP+glEn2FjYcsAB2JIPXwrH8nTeLnSJLfyTBFMI5vPtFi+vTXa2RLrU/bEZXNCvXNj9ddrVAAAAFQDUGYh33Gb0wYMJLPhluvIMLYrLNQAAAIEAheG+cF0FKrD4/c8 ... ... K/wmjHFM4E= clé pour sauvegarde
Désormais, l'utilisation de cette clé pour se connecter au serveur se fera de manière non interactive (pas besoin d'être devant le clavier) et entraînera l'exécution du script suivant:
[[:vim|vim]]/root/.ssh/validate.sh #! /bin/bash case "$SSH_ORIGINAL_COMMAND" in (rsync\ --server*) $SSH_ORIGINAL_COMMAND ;; (*) echo "Rejected" ;; esac
N'oubliez pas de le rendre exécutable, de vérifier les permissions du répertoire .ssh (700) et de son contenu (400 ou 600).
L'utilisation de cette clé pour un accès limité au serveur se fait de la manière suivante:
[[:rsync|rsync]]-a -e 'ssh -i ~/.ssh/sauvegarde' /etc root@backup:/var/lib/backups/
Tout autre tentative (par exe
ssh -i ~/.ssh/sauvegarde root@backup rm -fr /etc
sera rejeté par le script de validation.
Pour être utilisé par exemple avec backuppc
cwrsync est pas mal, un peu complexe à mettre en oeuvre:
# vim: set filetype=dokuwiki: