Rain WikiWindows · Linux · Android

คีย์ SSH

แนวคิดOpenSSHลบได้อย่างปลอดภัย: ไม่

คีย์ SSH ช่วยให้คุณลงชื่อเข้าใช้เซิร์ฟเวอร์ได้โดยไม่ต้องใช้รหัสผ่าน คู่คีย์ประกอบด้วยคีย์ส่วนตัว (private key) ซึ่งจะเก็บไว้ในคอมพิวเตอร์ของคุณ และคีย์สาธารณะ (public key) ซึ่งจะถูกคัดลอกไปยังไฟล์ ~/.ssh/authorized_keys บนเซิร์ฟเวอร์ คีย์จะถูกสร้างขึ้นด้วย ssh-keygen ซึ่งเป็นส่วนหนึ่งของ OpenSSH

1ประเภทของคีย์

คีย์ Ed25519 มีความสั้น รวดเร็ว และรองรับโดย OpenSSH เวอร์ชันปัจจุบันทั้งหมด โดยใช้คำสั่ง ssh-keygen -t ed25519 ในการสร้าง ส่วนคีย์ RSA ยังคงได้รับการสนับสนุนสำหรับระบบรุ่นเก่าและควรมีความยาวอย่างน้อย 3072 บิต

2รหัสผ่าน (Passphrase) และเอเจนต์

รหัสผ่าน (Passphrase) จะทำหน้าที่เข้ารหัสคีย์ส่วนตัวที่เก็บอยู่ในดิสก์ เพื่อป้องกันไม่ให้ไฟล์ที่ถูกขโมยไปสามารถนำไปใช้งานได้โดยลำพัง โดย ssh-agent จะเก็บคีย์ที่ปลดล็อกแล้วไว้ในหน่วยความจำ ทำให้คุณต้องพิมพ์รหัสผ่านเพียงครั้งเดียวต่อหนึ่งเซสชัน

3สิทธิ์การเข้าถึง

OpenSSH จะปฏิเสธการใช้งานคีย์หากไฟล์มีการตั้งค่าสิทธิ์เปิดกว้างเกินไป คีย์ส่วนตัวควรอนุญาตให้อ่านได้เฉพาะเจ้าของเท่านั้น (600) และไดเรกทอรี ~/.ssh รวมถึงไฟล์ authorized_keys บนเซิร์ฟเวอร์จะต้องไม่เปิดให้ผู้อื่นเขียนข้อมูลได้

วิธีการตั้งค่าการลงชื่อเข้าใช้ด้วยคีย์

  1. สร้างคีย์บนคอมพิวเตอร์ของคุณ: ssh-keygen -t ed25519
  2. ยอมรับไฟล์เริ่มต้นและพิมพ์รหัสผ่าน (Passphrase)
  3. คัดลอกคีย์สาธารณะไปยังเซิร์ฟเวอร์: ssh-copy-id user@server
  4. ลงชื่อเข้าใช้เพื่อทดสอบ: ssh user@server
  5. หลังจากที่คีย์ใช้งานได้แล้ว ให้พิจารณาปิดการลงชื่อเข้าใช้ด้วยรหัสผ่านบนเซิร์ฟเวอร์

ข้อควรระวัง

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

แหล่งอ้างอิง

  1. หน้าคู่มือ ssh-keygen(1) (OpenBSD) man.openbsd.org
  2. หน้าคู่มือ sshd(8), รูปแบบไฟล์ AUTHORIZED_KEYS (OpenBSD) man.openbsd.org

ตรวจสอบล่าสุด: