คุณกำลังผสมการรับรองความถูกต้องของเครื่องเซิร์ฟเวอร์กับเครื่องไคลเอนต์และการรับรองความถูกต้องของผู้ใช้กับเครื่องเซิร์ฟเวอร์
ตรวจสอบเซิร์ฟเวอร์
หนึ่งในสิ่งแรกที่เกิดขึ้นเมื่อมีการสร้างการเชื่อมต่อ SSH คือเซิร์ฟเวอร์ส่งคีย์สาธารณะไปยังไคลเอนต์และพิสูจน์ (ด้วยการเข้ารหัสคีย์สาธารณะ ) ไปยังไคลเอนต์ที่รู้รหัสส่วนตัวที่เกี่ยวข้อง สิ่งนี้จะตรวจสอบความถูกต้องของเซิร์ฟเวอร์: หากส่วนหนึ่งของโปรโตคอลนี้สำเร็จลูกค้าจะรู้ว่าเซิร์ฟเวอร์คือใคร
ลูกค้าอาจตรวจสอบว่าเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ที่รู้จัก แต่ไม่ใช่เซิร์ฟเวอร์โกงบางรายที่พยายามส่งผ่านเป็นเซิร์ฟเวอร์ที่เหมาะสม SSH มีเพียงกลไกอย่างง่ายในการตรวจสอบความถูกต้องของเซิร์ฟเวอร์: มันจดจำเซิร์ฟเวอร์ที่คุณเชื่อมต่ออยู่แล้วใน~/.ssh/known_hosts
ไฟล์บนเครื่องไคลเอนต์ (มีไฟล์ทั้งระบบด้วย/etc/ssh/known_hosts
) ในครั้งแรกที่คุณเชื่อมต่อกับเซิร์ฟเวอร์คุณต้องตรวจสอบด้วยวิธีอื่นว่ารหัสสาธารณะที่แสดงโดยเซิร์ฟเวอร์นั้นเป็นรหัสสาธารณะของเซิร์ฟเวอร์ที่คุณต้องการเชื่อมต่อ หากคุณมีพับลิกคีย์ของเซิร์ฟเวอร์ที่คุณกำลังจะเชื่อมต่อคุณสามารถเพิ่มลง~/.ssh/known_hosts
ในไคลเอ็นต์ด้วยตนเอง
การตรวจสอบเซิร์ฟเวอร์จะต้องทำก่อนที่คุณจะส่งข้อมูลที่เป็นความลับไปยังมัน โดยเฉพาะอย่างยิ่งหากการตรวจสอบผู้ใช้เกี่ยวข้องกับรหัสผ่านรหัสผ่านจะต้องไม่ถูกส่งไปยังเซิร์ฟเวอร์ที่ไม่ได้ตรวจสอบความถูกต้อง
การตรวจสอบผู้ใช้
เซิร์ฟเวอร์อนุญาตให้ผู้ใช้เข้าสู่ระบบจากระยะไกลเท่านั้นหากผู้ใช้นั้นสามารถพิสูจน์ได้ว่าพวกเขามีสิทธิ์ในการเข้าถึงบัญชีนั้น ขึ้นอยู่กับการกำหนดค่าของเซิร์ฟเวอร์และตัวเลือกของผู้ใช้ผู้ใช้อาจแสดงหนึ่งในหลายรูปแบบของข้อมูลประจำตัว (รายการด้านล่างไม่ครบถ้วนสมบูรณ์)
- ผู้ใช้อาจแสดงรหัสผ่านสำหรับบัญชีที่เขาพยายามเข้าสู่ระบบ; เซิร์ฟเวอร์จะตรวจสอบว่ารหัสผ่านถูกต้อง
- ผู้ใช้อาจนำเสนอกุญแจสาธารณะและพิสูจน์ว่าเขามีกุญแจส่วนตัวที่เกี่ยวข้องกับกุญแจสาธารณะนั้น นี่เป็นวิธีการเดียวกับที่ใช้ในการรับรองความถูกต้องของเซิร์ฟเวอร์ แต่ตอนนี้ผู้ใช้กำลังพยายามพิสูจน์ตัวตนของพวกเขาและเซิร์ฟเวอร์กำลังตรวจสอบพวกเขา ความพยายามในการเข้าสู่ระบบได้รับการยอมรับหากผู้ใช้พิสูจน์ให้เห็นว่าเขารู้รหัสส่วนตัวและกุญแจสาธารณะอยู่ในรายการการอนุญาตของบัญชี (
~/.ssh/authorized_keys
บนเซิร์ฟเวอร์)
- วิธีการอีกประเภทหนึ่งเกี่ยวข้องกับการมอบหมายงานส่วนหนึ่งของการพิสูจน์ตัวตนผู้ใช้กับเครื่องไคลเอนต์ สิ่งนี้เกิดขึ้นในสภาพแวดล้อมที่มีการควบคุมเช่นรัฐวิสาหกิจเมื่อเครื่องหลายเครื่องใช้บัญชีเดียวกัน เซิร์ฟเวอร์รับรองความถูกต้องของเครื่องลูกข่ายโดยกลไกเดียวกับที่ใช้ในทางกลับกันจากนั้นอาศัยไคลเอนต์เพื่อตรวจสอบผู้ใช้