Saya mencoba mengatur rsync untuk menyalin data dari server setiap hari. Untuk membuat sistem seketat mungkin, saya mencoba menggunakan mode yang dijelaskan dalam halaman manual sebagai: "MENGGUNAKAN FITUR RSYNC-DAEMON MELALUI KONEKSI SHELL-REMOTE"
Jadi saya telah meletakkan file bernama rsyncd.conf di folder home root:
[root]
path = /
read only = true
dan mencoba menyalin / etc / passwd sebagai ujian:
rsync -vv -e ssh myserver::root/etc/passwd .
Tapi saya mendapatkan yang berikut ini:
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]
Alasan saya melakukan semua ini adalah bahwa begitu saya membuatnya berfungsi, saya berencana untuk membatasi akses dengan menentukan perintah
rsync --server --daemon .
di ~ / .ssh / authorized_keys
Jawaban:
Tampaknya ada bug dalam dokumentasi atau penegasan rsync. man rsync mengatakan:
tetapi ketika terhubung ke root, menurut / var / log / messages, ia mencari di /etc/rsyncd.conf untuk file konfigurasi (lokasi standar untuk file rsyncd.conf saat tidak digunakan di SSH.
Saya harus memaksa server ssh untuk menggunakan file konfigurasi yang tepat dengan menambahkan
ke /root/.ssh/authorized_keys.
Alasan saya tidak hanya meletakkan konfigurasi di lokasi default adalah bahwa saya tidak ingin seseorang secara tidak sengaja memulai daemon rsync yang normal - Saya hanya ingin daemon memiliki akses sebanyak ini ketika telah mendapatkan kunci ssh yang benar.
sumber
rsync dalam mode daemon bukan yang saya sarankan jika Anda ingin menguncinya sedekat mungkin. Anda ingin membatasi perintah bahwa kunci SSH diizinkan untuk dijalankan dan menjalankan perintah salin menggunakan kunci itu.
Untuk mengetahui perintah apa yang membatasi kunci, jalankan baris perintah rsync yang sesuai dengan sedikit modifikasi pada perintah ssh:
Anda akan melihat garis di output debug seperti:
Perintah persis itulah yang ingin Anda batasi kunci agar dapat dijalankan di .ssh /otorized_keys:
sumber