วิธีเพิกถอนใบรับรอง ssh (ไม่ใช่ ssh identity file!)


14

ฉันได้สร้างใบรับรอง ssh เช่นนี้:

  1. ssh-keygen -f ca_key # สร้าง ssh keypair สำหรับใช้เป็นใบรับรอง
  2. สร้างรหัสโฮสต์ ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
  3. ระบุรหัสโฮสต์ในไฟล์ sshd config ของเซิร์ฟเวอร์: TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
  4. สร้างใบรับรองท้องถิ่นในการเข้าถึงโฮสต์ใช้ใบรับรอง ssh-keygen -s ca_key -I cert_identifier user_key.pubSSH: สิ่งนี้ควรสร้าง user_key-cert.pub

ตอนนี้ฉันสามารถเข้าสู่เซิร์ฟเวอร์โดยใช้ssh -i user_key user@host(ซึ่งใช้ user_key-cert.pub) ฉันจะเพิกถอนใบรับรองนอกเหนือจากการปิดใช้งานไฟล์ TrustedUserCAKeys ได้อย่างไร


มีการสนทนาเกี่ยวกับสิ่งนี้ในรายการ openssh ที่นี่gossamer-threads.com/lists/openssh/dev/ ...... - ฉันไม่คิดว่าจะมีวิธีที่สวยงามในการเพิกถอนใบรับรอง
rorycl

คำตอบ:


13

sshd_config มีไฟล์ RevokedKeys คุณสามารถแสดงรายการคีย์หรือใบรับรองหลายรายการได้หนึ่งรายการต่อบรรทัด ในอนาคต OpenSSH จะสนับสนุนการเพิกถอนด้วยหมายเลขซีเรียลใบรับรองซึ่งจะทำให้รายการเพิกถอนมีขนาดเล็กมาก


-3

สิ่งเหล่านี้อาจเป็นที่สนใจของคุณ:

CARevocationFile /path/to/bundle.crl ไฟล์นี้มีหลาย "รายการเพิกถอนใบรับรอง" (CRL) ของผู้ลงนามใบรับรองในรูปแบบ PEM ต่อกัน

CARevocationPath / path / to / CRLs / "Hash dir" ด้วย "รายการเพิกถอนใบรับรอง" (CRL) ของผู้ลงนามใบรับรอง ควรเก็บ CRL แต่ละรายการในไฟล์แยกต่างหากด้วยชื่อ [HASH] .r [NUMBER] โดยที่ [HASH] คือค่าแฮชของ CRL และ [NUMBER] เป็นจำนวนเต็มเริ่มต้นจากศูนย์ Hash เป็นผลมาจากคำสั่งเช่นนี้: $ openssl crl -in crl_file_name -noout -hash

(3 อันดับแรกของ Google ที่พบในการค้นหา "ssh ca revoke" ... )


ใบรับรอง ssh ไม่ได้ใช้ใบรับรองรูปแบบ PEM แต่เป็นรูปแบบของตัวเองดังนั้นสิ่งนี้จะไม่ทำงาน
rorycl

OpenSSH ไม่ได้ใช้ CARevocationFile ครั้งล่าสุดที่ฉันตรวจสอบ (อาจมีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้)
Chris S

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