3
SFTP พร้อม chroot ขึ้นอยู่กับพับลิกคีย์ของการเชื่อมต่อผู้ใช้
ฉันต้องการสร้างเซิร์ฟเวอร์ (เรียกใช้ Debian หรือ FreeBSD) ที่ได้รับการสำรองข้อมูลจากไคลเอนต์ที่แตกต่างกันผ่าน sshfs ไคลเอนต์แต่ละคนควรสามารถอ่านและเขียนข้อมูลสำรองของตัวเอง แต่ไม่ใช่ข้อมูลของลูกค้าอื่น ๆ ฉันมีความคิดต่อไปนี้: ไคลเอนต์แต่ละคนเชื่อมต่อผ่านกุญแจสาธารณะรับรองความถูกต้องเพื่อ backup@backupserver.local การสำรองข้อมูลผู้ใช้มีไฟล์ authorized_keys พิเศษเช่นนี้: command="internal-sftp" chroot="/backup/client-1/data" ssh-rsa (key1) command="internal-sftp" chroot="/backup/client-2/data" ssh-rsa (key2) command="internal-sftp" chroot="/backup/client-3/data" ssh-rsa (key3) etc... ข้อดีของการทำเช่นนี้คือฉันไม่ต้องการใช้ผู้ใช้แยกต่างหากสำหรับไคลเอนต์ทุกคนและฉันสามารถสร้างไฟล์ authorized_keys ที่ได้รับอนุญาตด้วยสคริปต์ได้อย่างง่ายดาย มีเพียงปัญหาเดียวคือ: ใช้งานchroot=...ไม่ได้ ไฟล์ authorized_keys ของ OpenSSH ดูเหมือนจะไม่เทียบเท่า ChrootDirectory (ซึ่งทำงานใน / etc / ssh / sshd_config ไม่ว่าจะเป็นแบบโกลบอลหรือในบล็อกผู้ใช้ตรงกัน) มีวิธีที่เรียบง่ายพอสมควรในการบรรลุสิ่งที่ฉันต้องการโดยใช้ OpenSSH …