หากคุณกำลังใช้รหัสสาธารณะ ssh เพื่อรับรองความถูกต้อง คุณกำลังรับรองความถูกต้องกับ ssh daemon ของคุณเท่านั้น ไม่ใช่กับระบบ SSH daemon จะอ้างว่าดำเนินการรับรองความถูกต้อง จากนั้นให้คุณล็อกอินเข้าสู่เชลล์ แม้ว่ากระบวนการนี้อาจใช้ PAM stack เพื่อตั้งค่าเซสชันการเข้าสู่ระบบของคุณ อย่างไรก็ตาม กระบวนการนี้ไม่ได้จัดการการรับรองความถูกต้องผ่าน PAM stack
ฉันอาจแจ้งให้คุณทราบอย่างชัดเจน แต่สามารถรับตั๋ว Kerberos ได้ก็ต่อเมื่อคุณใช้ซอฟต์แวร์ที่ร้องขอเท่านั้น ในระบบทั่วไปจะมีการร้องขอตั๋วดังกล่าวผ่าน PAM รับรองความถูกต้อง
ขั้นตอนถ้าอย่างใดอย่างหนึ่ง แพม_sss
หรือ pam_krb5
กำหนดไว้ใน รับรองความถูกต้อง
สแต็กของการกำหนดค่า PAM ที่ใช้โดยแอปพลิเคชันของคุณ เมื่อแอปพลิเคชันดังกล่าว (เช่น sshd
) กำลังข้ามไป รับรองความถูกต้อง
ขั้นตอน จะไม่มีการเรียกใช้โมดูล PAM ที่รับผิดชอบในการตรวจสอบความถูกต้อง และไม่สามารถรับตั๋ว Kerberos ด้วยวิธีนี้ได้
เมื่อไคลเอ็นต์ Kerberos พยายามขอตั๋วเริ่มต้น (TGT) ลูกค้าและ Kerberos KDC จะแลกเปลี่ยนรายการที่เรียกว่า "วิธีการตรวจสอบสิทธิ์ล่วงหน้า" ในทางปฏิบัติ วิธีการเหล่านี้เป็นวิธีการที่ใช้ในการรับรองความถูกต้องไคลเอนต์ของคุณกับ KDC วิธีหนึ่งที่ลูกค้าเลือก หาก KDC ยอมรับ จะใช้กระบวนการตรวจสอบสิทธิ์ตามจริง ไม่มีวิธีการยืนยันตัวตนล่วงหน้าของ Kerberos ที่ใช้คู่คีย์ SSH สำหรับการตรวจสอบสิทธิ์ ดังนั้นคุณจึงไม่สามารถใช้คู่คีย์ SSH เพื่อรับ TGT ได้ วิธีการตรวจสอบสิทธิ์ล่วงหน้าที่ใช้รหัสผ่านมาตรฐานทั้งหมดสร้างขึ้นจากทั้งไคลเอนต์ Kerberos และ Kerberos KDC ที่รู้จักคีย์ระยะยาว (รหัสผ่าน) ของผู้ใช้หลัก แม้ว่าจะไม่ได้ส่งผ่านเครือข่ายก็ตาม ขณะนี้มีวิธีหนึ่งที่ไม่อาศัยรหัสผ่านและเรียกว่าวิธี PKINIT ซึ่งอาศัยการยืนยันตัวตนโดยใช้โครงสร้างพื้นฐานใบรับรองคีย์สาธารณะ
คุณทำอะไรได้บ้าง? คุณอาจต้องการเปลี่ยนทุกอย่างและใช้สมาร์ทการ์ดสำหรับการรับรองความถูกต้องแทน การรับรองความถูกต้องของสมาร์ทการ์ดรองรับโดย Kerberos เป็นวิธีการตรวจสอบสิทธิ์ล่วงหน้าแบบ 'pkinit'นอกจากนั้น SSH daemon ยังสามารถใช้ใบรับรองจากสมาร์ทการ์ดของคุณสำหรับการตรวจสอบสิทธิ์ที่คล้ายกับกรณีคู่คีย์ SSH
หากคุณต้องการใช้การรับรองความถูกต้อง PKINIT คุณมีสองวิธี: รับ Kerberos TGT พร้อม PKINIT บนเวิร์กสเตชันของคุณและเข้าสู่ระบบ SSH daemon บนเครื่องอื่นโดยใช้ตั๋ว Kerberos ที่คุณมีในเครื่อง หรือใช้ใบรับรองสมาร์ทการ์ดเพื่อเข้าสู่ระบบ SSH daemon เป็น คีย์ SSH จากนั้นใช้การส่งต่อสมาร์ทการ์ดเพื่อขอตั๋ว Kerberos บนโฮสต์โดยตรง ในกรณีเดิม TGT ดั้งเดิมของคุณจะไม่ถูกส่งต่อไปยังโฮสต์ SSH โดยอัตโนมัติ เว้นแต่คุณจะร้องขอการมอบสิทธิ์ตั๋ว ในกรณีหลังนี้ คุณยังคงต้องขอ TGT
ไม่ว่าจะใช้วิธีไหนก็ได้ประโยชน์แน่นอน https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_certificates_in_idm/index
หากคุณไม่ต้องการหรือไม่สามารถใช้สมาร์ทการ์ด วิธีเดียวที่เหลืออยู่คือใช้การเข้าสู่ระบบ Kerberos โดยตรงและลืมการตรวจสอบคู่คีย์ SSH