sudo โดยไม่มีรหัสผ่านเมื่อเข้าสู่ระบบด้วยกุญแจส่วนตัวของ SSH


23

เป็นไปได้ไหมที่จะใช้คำสั่ง sudo เพื่อสนับสนุนคีย์ส่วนตัว SSH เพื่อที่ว่าเมื่อผู้ใช้เข้าสู่ระบบโดยใช้คีย์ส่วนตัวเขา / เธอสามารถ sudo โดยไม่ต้องพิมพ์รหัสผ่าน

สิ่งนี้จะช่วยให้การจัดเก็บรหัสผ่านระบบปฏิบัติการ UNIX ในห้องเย็นที่เข้ารหัสและไม่จำเป็นต้องเข้าถึงพวกเขาสมมติว่าผู้ใช้ใช้กุญแจ SSH ส่วนตัวที่ปลอดภัยเสมอเพื่อเข้าสู่ระบบบนเซิร์ฟเวอร์


askubuntu.com/a/135838หากคุณใส่ผู้ใช้เหล่านั้นไว้ในกลุ่มคุณสามารถทำได้!
Rob

ลองsudo visudoและเปลี่ยนรหัสผ่านเพื่อNOPASSWD: ALLดูว่าใช้งานได้หรือไม่
pneumatics

3
@AlanTuring นั่นจะใช้ได้กับผู้ใช้ในกลุ่มที่ระบุด้วยรหัสผ่าน
Xyon

@AlanTuring ที่จะลดความปลอดภัยของเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ - ฉันต้องการเฉพาะผู้ใช้บางคนไม่ทั้งหมด sudo
Mikko Ohtamaa

เป็นไปได้ที่จะให้สิทธิ์แก่ผู้ใช้เฉพาะ ดูคำตอบของฉัน
Isaac Rabinovitch

คำตอบ:


10

ตัวเลือกในการทำเช่นนั้นมีมาตั้งแต่ (อย่างน้อย) เมษายน 2014

คุณจะต้องติดตั้งแพคเกจที่เรียกว่าpam_ssh_agent_auth(มีให้สำหรับ Centos 7 นอกกรอบ YMMV) จากนั้นกำหนดค่า/etc/pam.d/sudoให้ยอมรับว่าเป็นวิธีการอนุญาต สุดท้ายคุณอาจต้องเพิ่มไปยังรายการของตัวแปรสภาพแวดล้อมที่ยังคงมีอยู่ในช่วงSSH_AUTH_SOCKsudo

Gentoo wiki มีรายละเอียดสำหรับขั้นตอนเหล่านี้


1
น่ารักขอบคุณเลียม น่าเสียดายที่ฉันไม่ได้ดูแลระบบมาหลายปีแล้ว!
Mikko Ohtamaa

1

สิ่งนี้เป็นไปไม่ได้หากไม่มีการเปลี่ยนรหัสร้ายแรงเป็น sudo และ sshd Sudo ไม่รู้เกี่ยวกับวิธีการเข้าสู่ระบบและ ssh ไม่ได้เผยแพร่ไปยังโปรแกรมอื่น ๆ ที่จะระบุว่ากุญแจสาธารณะรหัสผ่านหรือกลไกอื่น ๆ ที่ใช้สำหรับการเข้าสู่ระบบ

อย่างที่คนอื่นพูดคุณสามารถใช้ตัวเลือก NOPASSWD ใน sudoers ซึ่งจะมีผลกับผู้ใช้ที่ระบุเสมอแม้ว่าจะไม่เพียง แต่เมื่อพวกเขาใช้ ssh ด้วยคีย์ส่วนตัว

หากคุณต้องการจริงๆอาจมีกลอุบายที่คุณสามารถทำได้ด้วยโปรแกรม suid ที่ตรวจสอบบันทึก sshd และล็อก / แก้ไขไฟล์ sudoers เพื่อให้ผู้ใช้นั้นทำ sudo โดยไม่ใช้รหัสผ่านและงานเป็นระยะเพื่อเพิกถอนการอนุญาตนี้

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


11
"ไม่สามารถทำได้" ไม่ใช่คำตอบโดยเฉพาะอย่างยิ่งเมื่อสามารถทำได้
Isaac Rabinovitch

เปลี่ยนคำตอบให้ถูกต้องที่มี informatino ใหม่
Mikko Ohtamaa

1

คำตอบสองสามข้อชี้ไปที่ sudo โดยไม่ต้องใส่รหัสผ่านของผู้ใช้ คุณควรตระหนักว่าสิ่งนี้จะลดความปลอดภัยของคุณ

สำหรับผู้ใช้ที่รับรองความถูกต้องแล้วอย่างมากกับใบรับรองสิ่งนี้อาจไม่เป็นปัญหาเพราะเขาอยู่ในตำแหน่งที่แน่นอนของใบรับรองที่ในทางทฤษฎีอาจทำให้เขารูต

อย่างไรก็ตามถ้าคุณคิดเกี่ยวกับช่องโหว่ที่จะให้ผู้โจมตีด้วยเชลล์ผู้ใช้ที่ จำกัด และผู้ใช้รายนี้มีการตั้งค่า NOPASSWD ในไฟล์ sudoers ผู้โจมตีจะได้รับการรูทโดยไม่ต้องมีข้อมูลรับรองใด ๆ ต่อระบบเลย

หาก sudo ต้องการรหัสผ่านจากผู้ใช้ผู้โจมตีต้องใช้เวลาและโชคดีในการเพิ่มสิทธิ์ของเขาในการรูท

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