ป้ายกำกับ: Authorized_keys

สร้าง Public Key จาก Private Keyสร้าง Public Key จาก Private Key

การสร้าง Public Key ขึ้นมาใหม่จาก Private Key ที่เรามีอยู่แล้ว เป็นเรื่องที่ทำได้ปกติ เพราะโดยทางคณิตศาสตร์แล้ว Public Key ถูกคำนวณออกมาจาก Private Key ครับ


วิธีการสร้าง Public Key จาก Private Key

ส่วนใหญ่ในระบบ Linux หรือ Web Server เราจะใช้เครื่องมือที่ชื่อว่า OpenSSL ครับ

  • กรณีเป็น Standard SSH Key
    หากคุณมี Private Key และต้องการสร้างไฟล์ .pub กลับคืนมา ให้ใช้คำสั่งนี้
    ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
    • -y: อ่านไฟล์ Private Key และพ่น Public Key ออกมา
    • -f: ระบุไฟล์ Private Key ต้นทาง
  • กรณีเป็น SSL/TLS Key
    หากคุณมีไฟล์ Private Key ของใบรับรอง SSL และต้องการดึง Public Key ออกมาดูหรือเซฟเก็บไว้
    openssl rsa -in server.key -pubout -out server_public.key
    • -in: ไฟล์ Private Key ของคุณ
    • -pubout: คำสั่งให้ Output ออกมาเป็น Public Key
    • -out: ชื่อไฟล์ Public Key ที่ต้องการสร้าง

ตารางสรุปความแตกต่าง

ประเภท Keyเครื่องมือที่ใช้ไฟล์ที่ได้การนำไปใช้
SSH Keyssh-keygen.pubใช้สำหรับ Login เข้า Server
SSL Keyopenssl.key / .pemใช้สำหรับเข้ารหัสการรับส่งข้อมูลบนหน้าเว็บ

⚠️ ข้อควรระวัง

  • ห้ามแชร์ Private Key: คุณสามารถส่ง Public Key ให้ใครก็ได้ แต่ Private Key ต้องถูกเก็บเป็นความลับที่สุด
  • สิทธิ์การเข้าถึง : ในระบบ Linux ไฟล์ Private Key ควรมี permission เป็น 600
    chmod 600 your_private.key
  • การตรวจสอบความถูกต้อง: หากคุณอยากรู้ว่า Public Key นี้คู่กับ Private Key จริงไหม คุณสามารถเช็คค่า Modulus ให้ตรงกันได้

วิธีเช็คว่า Key ตรงกันหรือไม่

  • เช็ค Private Key
    openssl rsa -noout -modulus -in server.key | openssl md5
  • เช็ค Public Key
    openssl rsa -noout -modulus -pubin -in server_public.key | openssl md5

หากค่า MD5 Hash ที่ได้ออกมา “ตรงกัน” แสดงว่าเป็นคู่กันแน่นอนครับ


อ่านเพิ่มเติม