บางคนสามารถอธิบาย 'PasswordAuthentication' ในไฟล์ / etc / ssh / sshd_config ได้หรือไม่


28

ในหน้านี้คำอธิบายที่ให้ไว้คือ:

ตัวเลือก PasswordAuthentication ระบุว่าเราควรใช้การตรวจสอบตามรหัสผ่านหรือไม่ เพื่อความปลอดภัยที่แข็งแกร่งตัวเลือกนี้จะต้องตั้งค่าเป็นใช่เสมอ

แต่ล้มเหลวในการจัดเตรียมสถานการณ์จำลองการใช้งานใด ๆ ที่ชี้แจงเมื่อใช่หรือไม่เหมาะสม บางคนช่วยอธิบายเพิ่มเติมได้ไหม?

คำตอบ:


21

ลิงก์ของคุณชี้ไปที่เอกสารประกอบ 10 ปีที่ล้าสมัย

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


โอเคสำหรับ authorized_key2 เท่านั้น: (1) ความคิดเห็นออก AuthorizedKeysFile (2) PasswordAuthentication ไม่มี (3) PubkeyAuthentication ใช่ (4) ไม่มี ChallengeResponseAuthentication (5) การทดสอบมัน ... ถ้ามันยังคงยอมรับรหัสผ่านยังเพิ่ม UsePam ไม่มี
YumYumYum

ใช้การตั้งค่านี้: fpaste.org/114544/04202660เฉพาะเมื่ออนุญาตให้ลงชื่อเข้าใช้ SSH ผ่านทาง ~ / .ssh / authorized_keys2 แต่ไม่ได้ใช้ชื่อผู้ใช้ / รหัสผ่าน
YumYumYum

1
และค่าเริ่มต้นคืออะไร ฉันหมายถึงถ้าฉันไม่ได้ระบุ "รหัสผ่านการยืนยัน" ใด ๆ
Riccardo SCE

@TSERiccardo: ไม่มีใครตอบคำถามของคุณ? มันเป็นความอัปยศตำหนิดังนั้น!
Timo

1
@RiccardoSCE ตามหน้า man sshd_config ค่าเริ่มต้นสำหรับ PasswordAuthentication คือ 'ใช่'
ปลาดาว

53

โปรดทราบว่าการตั้งค่า PasswordAuthentication ไม่ได้ควบคุมการรับรองความถูกต้องด้วยรหัสผ่านทั้งหมด ChallengeResponseAuthentication มักถามรหัสผ่านด้วย

PasswordAuthentication ควบคุมการสนับสนุนสำหรับรูปแบบการรับรองความถูกต้อง 'รหัสผ่าน' ที่กำหนดไว้ใน RFC-4252 (มาตรา 8) ChallengeResponseAuthentication ควบคุมการสนับสนุนสำหรับรูปแบบการตรวจสอบ 'แป้นพิมพ์แบบโต้ตอบ' ที่กำหนดใน RFC-4256 รูปแบบการตรวจสอบความถูกต้องของแป้นพิมพ์แบบโต้ตอบได้โดยทางทฤษฎีแล้วสามารถถามคำถามแบบใช้หลายคำถามได้หลายคำถาม ในทางปฏิบัติมักจะถามเฉพาะรหัสผ่านของผู้ใช้

หากคุณต้องการปิดใช้งานการรับรองความถูกต้องด้วยรหัสผ่านอย่างสมบูรณ์ให้ตั้งค่าทั้งสองรหัสผ่านการตรวจสอบและ ChallengeResponseAuthentication เป็น 'ไม่' หากคุณอยู่ในกรอบความคิดของเข็มขัดและสายแขวนให้พิจารณาตั้งค่า UsePAM เป็น 'ไม่' เช่นกัน

การรับรองความถูกต้องสาธารณะ / ส่วนตัวใช้คีย์ (เปิดใช้งานโดยการตั้งค่า PubkeyAuthentication) เป็นประเภทของการรับรองความถูกต้องแยกต่างหากที่ไม่เกี่ยวข้องกับการส่งรหัสผ่านผู้ใช้ไปยังเซิร์ฟเวอร์แน่นอน

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


7
ฉันขอขอบคุณคำอธิบายบางอย่างของสิ่งที่UsePAMเกิดขึ้น ...
Alexey

3

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


คำตอบนี้เก่าไปหน่อย แต่ฉันต้องการเพิ่มบางสิ่ง: สิ่งที่ยอดเยี่ยมเกี่ยวกับการรับรองความถูกต้องของ Pubkey คือไม่มีการส่งความลับไปยังเซิร์ฟเวอร์เลย รหัสส่วนตัวยังคงเป็นความลับในคอมพิวเตอร์ของคุณเช่นคุณไม่สามารถส่งข้อมูลลับใด ๆ ไปยังเซิร์ฟเวอร์ที่ถูกบุกรุกหรือเซิร์ฟเวอร์ MITM โดยไม่ได้ตั้งใจ ดังนั้น Pubkey จึงเป็นที่นิยมมากกว่า Password auth แต่อย่างไรก็ตามรหัสผ่านรับรองความถูกต้องเป็นวิธีที่ง่ายต่อการใช้
Jan D

มันจะไม่ยุ่งยากในการตั้งค่าเพียงเสมอกับความขี้เกียจที่จะไม่ทำ
sudo

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