J'essaie de configurer rsync pour copier les données d'un serveur tous les jours. Afin de rendre le système aussi restreint que possible, j'essaie d'utiliser le mode décrit dans la page de manuel comme: "UTILISATION DES FONCTIONS RSYNC-DAEMON VIA UNE CONNEXION À DISTANCE"
J'ai donc mis un fichier appelé rsyncd.conf dans le dossier racine de root:
[root]
path = /
read only = true
et j'ai essayé de copier / etc / passwd comme test:
rsync -vv -e ssh myserver::root/etc/passwd .
Mais je reçois ce qui suit:
opening connection using: ssh myserver rsync --server --daemon .
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]
La raison pour laquelle je fais tout cela est qu'une fois que je le fais fonctionner, je prévois de restreindre l'accès en spécifiant la commande
rsync --server --daemon .
dans ~ / .ssh / authorized_keys
Réponses:
Il semble y avoir un bug dans la documentation ou l'implémentation de rsync. l'homme rsync dit:
mais lors de la connexion à root, selon / var / log / messages, il recherchait dans /etc/rsyncd.conf le fichier de configuration (l'emplacement standard pour un fichier rsyncd.conf lorsqu'il n'est pas utilisé sur SSH.
J'ai dû forcer le serveur ssh à utiliser le bon fichier de configuration en ajoutant
à /root/.ssh/authorized_keys.
La raison pour laquelle je n'ai pas simplement mis la configuration à l'emplacement par défaut est que je ne voulais pas que quelqu'un démarre accidentellement un démon rsync normal - je veux seulement qu'un démon ait autant d'accès quand il a la bonne clé ssh.
la source
rsync en mode démon n'est pas ce que je suggérerais si vous voulez le verrouiller le plus possible. Vous souhaitez restreindre la commande qu'une clé SSH est autorisée à exécuter et appeler la commande de copie à l'aide de cette clé.
Pour savoir à quelle commande restreindre la clé, exécutez la ligne de commande rsync appropriée avec une légère modification dans la commande ssh:
Vous verrez une ligne dans la sortie de débogage telle que:
Cette commande exacte est ce que vous voulez restreindre la clé pour pouvoir l'exécuter dans .ssh / authorized_keys:
la source