Próbuję skonfigurować rsync, aby codziennie kopiował dane z serwera. Aby maksymalnie ograniczyć system, próbuję użyć trybu opisanego na stronie podręcznika jako: „KORZYSTANIE Z FUNKCJI RSYNC-DAEMON ZA POMOCĄ POŁĄCZENIA ZDALNEGO-SHELL”
Więc umieściłem plik o nazwie rsyncd.conf w folderze głównym katalogu głównego:
[root]
path = /
read only = true
i próbował skopiować / etc / passwd jako test:
rsync -vv -e ssh myserver::root/etc/passwd .
Ale dostaję następujące:
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]
Powodem, dla którego to wszystko robię, jest to, że kiedy zacznę działać, planuję ograniczyć dostęp poprzez podanie polecenia
rsync --server --daemon .
w ~ / .ssh / Author_keys
Odpowiedzi:
Wygląda na to, że jest błąd w dokumentacji lub wszczepienie rsync. man rsync mówi:
ale podczas łączenia się z rootem, zgodnie z / var / log / messages, szukał pliku konfiguracyjnego /etc/rsyncd.conf (standardowa lokalizacja pliku rsyncd.conf, gdy nie jest używany przez SSH.
Musiałem zmusić serwer ssh do użycia właściwego pliku konfiguracyjnego poprzez dodanie
do /root/.ssh/authorized_keys.
Powodem, dla którego nie po prostu umieściłem konfiguracji w domyślnej lokalizacji, jest to, że nie chciałem, aby ktoś przypadkowo uruchomił normalnego demona rsync - chcę, aby demon miał tak duży dostęp, gdy ma prawidłowy klucz ssh.
źródło
rsync w trybie demona nie jest tym, co sugerowałbym, jeśli chcesz go mocno zablokować. Chcesz ograniczyć polecenie uruchamiania klucza SSH i wywołać polecenie kopiowania za pomocą tego klucza.
Aby dowiedzieć się, do którego polecenia ograniczyć klucz, uruchom odpowiedni wiersz polecenia rsync z niewielką modyfikacją polecenia ssh:
Zobaczysz wiersz w danych wyjściowych debugowania, taki jak:
Właśnie to polecenie jest tym, co chcesz ograniczyć klucz, aby mógł działać w .ssh / Author_Key:
źródło