Score:0

sftp - ให้รหัสผ่านแก่ผู้ใช้รายเดียวเท่านั้น & chroot

ธง in

ก่อนอื่นฉันรู้ว่าคำถามประเภทนี้ถูกถามบ่อยมาก และฉันได้ลองวิธีแก้ปัญหามากมายที่นี่และบน SuperUser แต่ก็ไม่ได้ผลและฉันก็หาสาเหตุไม่ได้

ฉันต้องการกำหนดค่า ssh ของฉันให้ยอมรับเฉพาะการเข้าสู่ระบบด้วยคีย์ ยกเว้นสำหรับผู้ใช้หนึ่งรายที่สามารถเข้าสู่ระบบด้วย sftp เท่านั้น (ไม่มีการเข้าถึง ssh cli ถ้าเป็นไปได้ ฉันไม่แน่ใจ)

นี่คือการกำหนดค่าของฉัน

อนุญาตผู้ใช้ user1 user2
ล็อกอินเกรซไทม์ 0
PubkeyAuthentication ใช่
AuthorizedKeysFile %h/.ssh/authorized_keys
เลขที่ยืนยันรหัสผ่าน
ChallengeResponseAuthentication เลขที่
ใช้ PAM ใช่
X11การส่งต่อใช่
แซนด์บ็อกซ์ UsePrivilegeSeparation
ClientAliveInterval 120
ระบบย่อย sftp ภายใน-sftp
จับคู่กลุ่ม sftpusers
        ChrootDirectory /home/%u
        ForceCommand ภายใน-sftp
จับคู่ผู้ใช้user2
        การตรวจสอบรหัสผ่านใช่
        ChrootDirectory /home/%u

เมื่อฉันพยายามเข้าสู่ระบบด้วย FileZilla ด้วย SFTP ฉันมีบันทึกนี้

สถานะ: กำลังเชื่อมต่อกับ *my_server_ip*:*my_ssh_port*...
การตอบสนอง: เริ่ม fzSftp แล้ว protocol_version=11
คำสั่ง: เปิด "user2@*my_server_ip*" *my_ssh_port*
สถานะ: ใช้ชื่อผู้ใช้ "user2" 
คำสั่ง: ผ่าน: ************
ข้อผิดพลาด: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์

เมื่อฉันพยายามเชื่อมต่อกับ ssh

ssh user2@*my_server_ip* -p *my_ssh_port*
รหัสผ่านของ user2@*my_server_ip*:
client_loop: ส่งการตัดการเชื่อมต่อ: รีเซ็ตการเชื่อมต่อ

ฉันสามารถเชื่อมต่อกับ user1 ได้ดีโดยใช้ pubkey แต่ฉันไม่สามารถทำให้ user2 สามารถเข้าสู่ระบบด้วยรหัสผ่านได้

Paul avatar
cn flag
ส่วนนี้ของ man page ตอบคำถามของคุณหรือไม่: [ChrootDirectory](https://manpages.debian.org/bullseye/openssh-server/sshd_config.5.en.html#ChrootDirectory)
Etshy avatar
in flag
ตกลง ฉันจัดการเพื่อเชื่อมต่อ bu ตอนนี้ฉันไม่สามารถอัปโหลดใน `home/user2` เพราะฉันต้อง `chown root:root` the dir เป็นข้อบังคับหรือมีเคล็ดลับ (เช่น `allow_writeable_chroot` ใน vsftpd) หรือไม่
Paul avatar
cn flag
คุณสามารถใช้ไดเรกทอรีย่อยได้หรือไม่?
Etshy avatar
in flag
ฉันทำได้ แต่มันไม่ใช่เป้าหมายของฉัน ฉันพบวิธีแก้ปัญหาที่เหมาะกับปัญหาของฉัน แต่อาจไม่ใช่ทางออกที่ดีที่สุดฉันโพสต์ไว้และจะยอมรับเป็นวิธีแก้ปัญหาเมื่อฉันทำได้
Score:0
ธง in

สำหรับผู้ที่มีปัญหาเช่นเดียวกับฉัน นี่คือวิธีที่ฉันจัดการเพื่อ chroot ผู้ใช้ sftp ในโฮมไดเร็กตอรี่ของพวกเขา

นี่คือ sshd_config ของฉัน

ระบบย่อย sftp ภายใน-sftp
จับคู่กลุ่ม sftpusers
        X11หมายเลขการส่งต่อ
        อนุญาตให้ Tcp ส่งต่อหมายเลข
        ChrootDirectory /หน้าแรก
        ForceCommand ภายใน-sftp -d /%u
จับคู่ผู้ใช้user2
        การตรวจสอบรหัสผ่านใช่

คุณต้องร้อง /บ้านและตั้งค่าการอนุญาตเพียงพอสำหรับการเชื่อมต่อ chmod 711 /บ้าน ของคุณ /home/user2 ผู้อำนวยการสามารถได้รับอนุญาตตามปกติสำหรับ ผู้ใช้2 เพื่อให้สามารถสร้าง/อัพโหลดไฟล์ได้

ด้วยการกำหนดค่านี้ ผู้ใช้จะถูกย้ายโดยอัตโนมัติใน dir ของพวกเขา chroot จะเข้ามา /บ้าน ผู้อำนวยการ แต่ผู้ใช้จะไม่ได้รับอนุญาตให้ .. และเขาจะติดคุกในบ้านของเขาเอง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา