ดำเนินการตามปกติrsync
จากลูกค้าไปยังเซิร์ฟเวอร์ระยะไกล แต่เพิ่มสวิตช์ละเอียดเพิ่มเติม: SSH -v
แล้ว grep Sending command
สำหรับ คุณจะเห็นไคลเอนต์คำสั่งที่แน่นอนกำลังส่งไปยังเซิร์ฟเวอร์ระยะไกล:
rsync -avz -e'ssh -v -i /ssh-keys/clientprivate.key' --bwlimit=8000 --delete root@server:/path/ /backup/myserver/ 2>&1 | grep "Sending command"
ในกรณีของฉันมันเป็น
rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /path
เพิ่มสิ่งนี้เป็นไฟล์command="..."
เซิร์ฟเวอร์ระยะไกล/home/USER/.ssh/authorized_keys
ตามที่ @larsks กล่าวถึง เพิ่มการตั้งค่าความปลอดภัย aditional หากจำเป็น:
no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server
ทั้งหมดเข้าด้วยกัน:
command="rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /backup/path",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server
(นำมาจากบทช่วยสอนที่ดีมากhttp://en.positon.org/post/Rsync-command-restriction-over-SSH )