Toolonit
  1. หน้าแรก
  2. เข้ารหัสลับ
  3. สร้างคีย์ SSH

สร้างคีย์ SSH (Ed25519, RSA)

สร้างคู่คีย์ SSH แบบ Ed25519 หรือ RSA ในรูปแบบ OpenSSH

ชนิดคีย์

Ed25519 เป็นค่าเริ่มต้นสมัยใหม่ เป็นคีย์สั้นที่เซิร์ฟเวอร์ SSH รุ่นปัจจุบัน GitHub และ GitLab รองรับ

ไม่บังคับ เขียนไว้ท้ายคีย์สาธารณะเพื่อแยกคีย์ออกจากกัน มักเป็นอีเมลหรือชื่อคอมพิวเตอร์ของคุณ

คู่คีย์ SSH ช่วยให้คุณล็อกอินเข้าเซิร์ฟเวอร์และ push ไปยัง GitHub หรือ GitLab ได้โดยไม่ต้องใช้รหัสผ่าน คีย์สาธารณะอยู่บนเซิร์ฟเวอร์ ส่วนคีย์ส่วนตัวอยู่กับคุณ เครื่องมือนี้เขียนไฟล์แบบเดียวกับที่ ssh-keygen สร้าง คือ id_ed25519 และ id_ed25519.pub หรือ id_rsa สำหรับ RSA โดยใช้ Web Crypto ของเบราว์เซอร์ คีย์ถูกสร้างบนอุปกรณ์ของคุณ ไม่เคยถูกอัปโหลดหรือเก็บไว้ ใช้ฟรีและไม่ต้องสมัครสมาชิก

วิธีสร้างคีย์ SSH

  1. เลือก Ed25519 (แนะนำ) หรือ RSA สำหรับเซิร์ฟเวอร์รุ่นเก่า แล้วเพิ่มหมายเหตุ (comment) เช่น you@laptop
  2. คลิก “สร้างคีย์ SSH”
  3. ดาวน์โหลดทั้งสองไฟล์ไว้ใน ~/.ssh แล้วรัน chmod 600 ~/.ssh/id_ed25519
  4. เพิ่มบรรทัดคีย์สาธารณะลงใน ~/.ssh/authorized_keys ของเซิร์ฟเวอร์ หรือในบัญชี GitHub ของคุณ

ความสามารถ

  • Ed25519 (ค่าเริ่มต้น), RSA 3072 หรือ RSA 4096
  • ไฟล์ OpenSSH แบบที่ ssh-keygen เขียน: id_ed25519 และ id_ed25519.pub หรือ id_rsa และ id_rsa.pub
  • fingerprint SHA256 แบบที่ ssh-keygen -l แสดง
  • หมายเหตุ (comment) ที่ไม่บังคับ เช่น you@laptop และการแก้หมายเหตุจะเขียนทั้งสองไฟล์ใหม่สำหรับคีย์เดิม
  • คัดลอกหรือดาวน์โหลดแต่ละไฟล์ พร้อมขั้นตอนถัดไปและคำสั่ง ssh-keygen สำหรับเพิ่มวลีรหัสผ่าน
  • สร้างด้วย Web Crypto ที่มีในเบราว์เซอร์ของคุณ

เป็นส่วนตัวหรือไม่

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

คำถามที่พบบ่อย

คีย์เหล่านี้เหมือนที่ ssh-keygen สร้างไหม

เหมือน เพราะอยู่ในรูปแบบ OpenSSH เดียวกัน ssh-keygen -y -f id_ed25519 จะแสดงบรรทัดคีย์สาธารณะเดียวกัน และ ssh-keygen -l -f id_ed25519 จะแสดง fingerprint เดียวกับที่นี่ (ทดสอบกับ OpenSSH 9.6 ทั้ง Ed25519 และ RSA)

จะเพิ่มวลีรหัสผ่านได้อย่างไร

คีย์ถูกสร้างโดยไม่มีวลีรหัสผ่าน หลังบันทึกแล้ว ให้รัน ssh-keygen -p -f ~/.ssh/id_ed25519 แล้วพิมพ์วลีรหัสผ่านใหม่ ssh-keygen จะเข้ารหัสไฟล์เดิมให้

ควรเลือก Ed25519 หรือ RSA

Ed25519 เพราะสั้นและเร็ว และ OpenSSH 6.5 ขึ้นไป, GitHub และ GitLab รองรับ การสร้างที่นี่ต้องใช้ Chrome 137+, Firefox 129+ หรือ Safari 17+ เลือก RSA (3072 หรือ 4096 บิต) สำหรับระบบเก่าที่ไม่รับ Ed25519 หรือเมื่อใช้เบราว์เซอร์รุ่นเก่า

จะเพิ่มคีย์ใน GitHub ได้อย่างไร

คัดลอกบรรทัดคีย์สาธารณะ (เนื้อหาของ id_ed25519.pub) แล้ววางใน GitHub ที่ Settings → SSH and GPG keys → New SSH key เมื่อบันทึกคีย์ส่วนตัวไว้ใน ~/.ssh แล้ว คำสั่ง ssh -T git@github.com จะทักทายคุณด้วยชื่อผู้ใช้

ทำไม ssh จึงบอกว่าสิทธิ์ของไฟล์เปิดกว้างเกินไป

เพราะ OpenSSH ไม่ยอมใช้ไฟล์คีย์ส่วนตัวที่ผู้ใช้อื่นอ่านได้ ให้รัน chmod 600 ~/.ssh/id_ed25519 และตั้งโฟลเดอร์ ~/.ssh เป็น chmod 700

เครื่องมือที่เกี่ยวข้อง