ก่อนอื่นฉันรู้ว่าคำถามประเภทนี้ถูกถามบ่อยมาก และฉันได้ลองวิธีแก้ปัญหามากมายที่นี่และบน 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 สามารถเข้าสู่ระบบด้วยรหัสผ่านได้