Ich versuche, rsync so einzurichten, dass die Daten jeden Tag von einem Server kopiert werden. Um das System so eingeschränkt wie möglich zu gestalten, versuche ich, den in der Manpage beschriebenen Modus wie folgt zu verwenden: "VERWENDEN VON RSYNC-DAEMON-FUNKTIONEN ÜBER EINE FERNBEDIENUNGSANSCHLUSS"
Also habe ich eine Datei namens rsyncd.conf in den Roots-Home-Ordner gelegt:
[root]
path = /
read only = true
und versuchte, / etc / passwd als Test zu kopieren:
rsync -vv -e ssh myserver::root/etc/passwd .
Aber ich bekomme folgendes:
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]
Der Grund, warum ich das alles mache, ist, dass ich den Zugriff durch Angabe des Befehls einschränken möchte, sobald ich ihn zum Laufen gebracht habe
rsync --server --daemon .
in ~ / .ssh / autorisierte_Tasten
Antworten:
Es scheint einen Fehler in der Dokumentation oder der Implementierung von rsync zu geben. Mann rsync sagt:
Beim Herstellen einer Verbindung zu root wurde gemäß / var / log / messages in /etc/rsyncd.conf nach der Konfigurationsdatei gesucht (dem Standardspeicherort für eine rsyncd.conf-Datei, wenn diese nicht über SSH verwendet wird.
Ich musste den SSH-Server zwingen, die richtige Konfigurationsdatei durch Hinzufügen zu verwenden
zu /root/.ssh/authorized_keys.
Der Grund, warum ich die Konfiguration nicht einfach an den Standardspeicherort gestellt habe, ist, dass ich nicht wollte, dass jemand versehentlich einen normalen rsync-Dämon startet. Ich möchte nur, dass ein Dämon so viel Zugriff hat, wenn er den richtigen SSH-Schlüssel hat.
quelle
rsync im Daemon-Modus ist nicht das, was ich vorschlagen würde, wenn Sie es so fest wie möglich sperren möchten. Sie möchten den Befehl einschränken, dass ein SSH-Schlüssel ausgeführt werden darf, und den Kopierbefehl mit diesem Schlüssel aufrufen.
Um herauszufinden, auf welchen Befehl der Schlüssel beschränkt werden soll, führen Sie die entsprechende rsync-Befehlszeile mit einer geringfügigen Änderung im Befehl ssh aus:
In der Debug-Ausgabe wird eine Zeile angezeigt, z. B.:
Mit diesem genauen Befehl möchten Sie den Schlüssel einschränken, damit er in .ssh / authorized_keys ausgeführt werden kann:
quelle