ฉันได้เพิ่มผู้ใช้ ftp_user ด้วยบรรทัด /etc/passwd:
ftp_user:x:1002:1003:ftp user,0,0,0,0:/home/ftp_user/files:/usr/sbin/nologin
เพื่อจำกัดให้ผู้ใช้นั้นสามารถ r/w/list ไดเร็กทอรีนั้นเท่านั้น และไม่สามารถระบุไดเร็กทอรีอื่นได้
เมื่อฉันพยายาม SFTP ในฐานะผู้ใช้นั้น ฉันจะได้รับ:
ได้รับข้อความยาวเกินไป 1416128883
sftp ทำงานได้ดีเมื่อฉันมีเชลล์เป็น /bin/sh ในไฟล์ passwd
อัปเดต
ฉันใช้ระบบย่อย sftp กับสิ่งนี้ใน sshd_config:
จับคู่กลุ่ม SFTP
ChrootDirectory /home/ftp_user/files
X11หมายเลขการส่งต่อ
อนุญาตให้ Tcp ส่งต่อหมายเลข
ForceCommand ภายใน-sftp
จับคู่ผู้ใช้ ftp_user
การตรวจสอบรหัสผ่านใช่
ตอนนี้ เมื่อฉันพยายาม SFTP ฉันได้รับ:
debug3: ส่งแพ็คเก็ต: ประเภท 61
debug3: รับแพ็กเก็ต: ประเภท 60
ดีบัก 2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 0
debug3: ส่งแพ็คเก็ต: ประเภท 61
debug3: รับแพ็กเก็ต: พิมพ์ 52
debug1: รับรองความถูกต้องสำเร็จ (คีย์บอร์ดโต้ตอบ)
รับรองความถูกต้องเป็น x.x.x.x ([x.x.x.x]:22)
debug2: fd 5 ตั้งค่า O_NONBLOCK
debug3: fd 6 คือ O_NONBLOCK
debug1: ช่อง 0: ใหม่ [ไคลเอ็นต์เซสชัน]
debug3: ssh_session2_open: channel_new: 0
debug2: ช่อง 0: ส่งเปิด
debug3: ส่งแพ็คเก็ต: ประเภท 90
debug1: ขอ [email protected]
debug3: ส่งแพ็คเก็ต: ประเภท 80
debug1: กำลังเข้าสู่เซสชันแบบโต้ตอบ
debug1: คำมั่นสัญญา: เครือข่าย
debug3: ส่งแพ็คเก็ต: ประเภท 1
packet_write_wait: การเชื่อมต่อกับพอร์ต x.x.x.x 22: ท่อแตก
ปิดการเชื่อมต่อ