สิทธิ์ SSH และโฮมไดเร็กตอรี่


53

ฉันใช้เวลาหลายชั่วโมงในการแก้ปัญหา SSH นี้ด้วยหนึ่งในบัญชีเรียนของฉันบนเซิร์ฟเวอร์ของโรงเรียน

ฉันไม่สามารถ ssh ไปยังบัญชีคลาสหนึ่งโดยไม่ต้องป้อนรหัสผ่านของฉันในขณะที่การตรวจสอบรหัสผ่านไม่ทำงานกับบัญชีชั้นอื่น ๆ ของฉัน ไดเรกทอรี. ssh / และเนื้อหาทั้งหมดมีสิทธิ์ที่ถูกต้องเหมือนกันกับบัญชีคลาสอื่น

เปิดใช้งานปัญหาคือสิทธิ์ที่กำหนดไว้ในไดเรกทอรีบ้านของฉันเอง การรับรองความถูกต้องแบบไม่ใช้รหัสผ่านไม่ทำงานเมื่อการอนุญาตในไดเรกทอรี HOME ของฉันถูกตั้งค่าเป็น 770 (โดยไม่คำนึงถึงการอนุญาตที่กำหนดไว้สำหรับ. ssh /) แต่มันทำงานกับการอนุญาตที่กำหนดเป็น 755 หรือ 700

ใครรู้ว่าทำไม SSH ทำเช่นนี้? เป็นเพราะการอนุญาตโฮมไดเรกทอรีอนุญาตเกินไปหรือไม่ ทำไม SSH ปฏิเสธที่จะรับรองความถูกต้องกับคีย์สาธารณะ / ส่วนตัวเมื่อโฮมไดเร็กตอรี่ถูกตั้งค่าให้อนุญาตมากกว่า 700?


1
ยืนยันคำตอบด้านล่าง; ปัญหาคือการอนุญาตกลุ่มในโฟลเดอร์โฮมถูกตั้งค่าอย่างไม่ถูกต้อง (ข้อความแสดงข้อผิดพลาดจาก auth.log คือ: 'การรับรองความถูกต้องปฏิเสธ: เจ้าของไม่ดีหรือโหมดสำหรับไดเรกทอรี / home / <user>') ฉันเห็นว่า SSH นั้นถูกต้องที่จะจู้จี้จุกจิกเกี่ยวกับการอนุญาตที่บ้าน
action_potato

5
คุณรู้เกี่ยวกับแท็กที่เรามีที่นี่? หากคุณคลิกที่sshแล้วlearn moreคุณจะเห็นรายการตรวจสอบสิ่งที่ต้องทำเมื่อ SSH ไม่ทำงานและจะกล่าวถึงการอนุญาตไดเรกทอรีหลัก
Gilles 'หยุดความชั่วร้าย'

ขอโทษด้วยที่ฉันไม่รู้เรื่องนี้! ขอบคุณสำหรับหัวขึ้น.
action_potato

คำตอบ:


54

นี่คือพฤติกรรมเริ่มต้นสำหรับ SSH จะช่วยปกป้องผู้ใช้คีย์โดยการบังคับใช้rwx------ในวันที่และสร้างความมั่นใจเจ้าของเท่านั้นที่มีสิทธิ์ในการเขียนไป$HOME/.ssh $HOMEหากผู้ใช้รายอื่นนอกเหนือจากเจ้าของที่เกี่ยวข้องมีสิทธิ์ในการเขียนใน$HOMEไดเรกทอรีผู้ใช้สามารถแก้ไขสิทธิ์บนอาจเป็นอันตรายการ$HOME/.sshจี้ผู้ใช้คีย์known_hostsหรือสิ่งที่คล้ายกัน โดยสรุปการอนุญาตต่อไปนี้$HOMEจะเพียงพอสำหรับ SSH ในการทำงาน

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH จะทำงานไม่ถูกต้องและจะส่งคำเตือนไปยังสิ่งอำนวยความสะดวกบันทึกหากมีการเปลี่ยนแปลงg+wหรือo+wมีอยู่ใน$HOMEไดเรกทอรี อย่างไรก็ตามผู้ดูแลระบบสามารถแก้ไขปัญหานี้ด้วยการกำหนดStrictModes noในsshd_configแฟ้มการกำหนดค่า (หรือคล้ายกัน) แต่ก็ควรมีความชัดเจนว่านี้ไม่แนะนำ


1
StrictModes noขอขอบคุณสำหรับการกล่าวขวัญ ในการตั้งค่าของฉัน ACL ได้รับการกำหนดค่าในไดเรกทอรีบ้านของผู้ใช้เป้าหมายและผู้สืบทอดทั้งหมดเพื่ออนุญาตให้มีการแก้ไขโดยผู้ใช้แบบกึ่งอัตโนมัติ ( u:operator:rwx) และ SSH ไม่ชอบสิ่งนี้
intelfx

31

77x ในไดเรกทอรีบ้านของคุณหมายความว่าทุกคนที่มี GID ที่ถูกต้องสามารถย้ายไดเรกทอรี. ssh ของคุณและแทนที่ด้วยไดเรกทอรีอื่น ผู้ใช้ที่มี GID ที่ถูกต้องจะมีสิทธิ์ในการเขียน / exec ในโฮมไดเร็คทอรีและสามารถเปลี่ยนชื่อ / สร้างไฟล์ / ไดเรกทอรีได้

SSH เป็นคนพิถีพิถันมากเมื่อพูดถึงเรื่องการอนุญาตและควร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.