การใช้ SSH Key แทนรหัสผ่านบน PuTTY

การใช้ SSH Key แทนรหัสผ่านบน PuTTY

ในการดูแลระบบเซิร์ฟเวอร์ ไม่ว่าจะเป็น Linux Server, Cloud VM หรือ IoT Gateway ความปลอดภัยในการเข้าถึงระบบถือเป็นหัวใจสำคัญ การใช้รหัสผ่าน (Password Authentication) แม้จะสะดวก แต่มีความเสี่ยงต่อการถูกเดา (Brute Force) หรือรั่วไหลได้ง่าย แนวปฏิบัติที่ผู้ดูแลระบบมืออาชีพเลือกใช้คือ SSH Key Authentication ซึ่งมีความปลอดภัยสูงกว่าอย่างมีนัยสำคัญ

บทความนี้จะอธิบาย การใช้งาน SSH Key แทนรหัสผ่านบน PuTTY อย่างเป็นขั้นตอน เหมาะสำหรับทั้งผู้เริ่มต้นและผู้ดูแลระบบที่ต้องการยกระดับความปลอดภัยของเซิร์ฟเวอร์


SSH Key คืออะไร และทำไมจึงควรใช้

SSH Key คือกลไกยืนยันตัวตนด้วย กุญแจคู่ (Key Pair) ประกอบด้วย

  • Private Key – เก็บไว้ที่เครื่องผู้ใช้งาน (เช่น Windows)  ห้ามให้ผู้อื่นรู้ Private Key

  • Public Key นำไปวางไว้บนเซิร์ฟเวอร์ เป็น Key ที่เราต้องการเชื่อมต่อโดยไม่ต้องใช้ Password

ข้อดีของ SSH Key

  • ปลอดภัยกว่ารหัสผ่านหลายเท่า

  • ลดความเสี่ยงจาก Brute Force Attack

  • เหมาะกับ Server Production และระบบอัตโนมัติ

  • ทำงานร่วมกับ Hardening เช่น Disable Password Login ได้อย่างสมบูรณ์


ขั้นตอนที่ 1: สร้าง SSH Key ด้วย PuTTYgen

PuTTY บน Windows จะใช้เครื่องมือ PuTTYgen สำหรับสร้างกุญแจ สามารถดาวน์โหลด PuTTYgen ได้ที่ https://www.puttygen.com

  1. เปิดโปรแกรม PuTTYgen หรือเรียกใช้งานทาง Start (Start > พิมพ์ puttygen)

2. เลือกชนิดกุญแจ

    • แนะนำ: RSA (2048 หรือ 4096 bits)

3. คลิก Generate แล้วขยับเมาส์จนกว่าจะเสร็จ

4. ตั้งค่า Key passphrase (เพื่อล็อกไฟล์กุญแจอีกชั้นหนึ่ง)

5. บันทึกไฟล์ คลิก Save private key

    • Private Key.ppk (เก็บไว้ที่เครื่องอย่างปลอดภัย)

    • คัดลอก Public Key (ข้อความยาวในช่องบน)

Note.
Passphrase คือด่านความปลอดภัยชั้นที่สอง หากไฟล์ .ppk หลุด ก็ยังไม่สามารถใช้งานได้ทันที


ขั้นตอนที่ 2: นำ Public Key ไปติดตั้งบนเซิร์ฟเวอร์

1. ล็อกอินเข้าเซิร์ฟเวอร์ด้วยรหัสผ่านปกติก่อน
2. ใช้คำสั่งสร้างโฟลเดอร์ .ssh (ถ้ายังไม่มี)

mkdir -p ~/.ssh
 
3. นำ Public Key ที่ก๊อปปี้จาก PuTTYgen มาใส่ในไฟล์ authorized_keys
nano ~/.ssh/authorized_keys
  • วาง Key ลงไปในไฟล์ (ต้องเป็นบรรทัดเดียวขึ้นต้นด้วย ssh-ed25519 หรือ ssh-rsa)
  • วาง Public Key 1 บรรทัดต่อ 1 key

3. บันทึกไฟล์และตั้งค่า Permission

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

ขั้นตอนที่ 3: ตั้งค่า PuTTY ให้ใช้ SSH Key

1. เปิด PuTTY

2. เมนู Connection → SSH → Auth → Credentials

3. ในช่อง Private key file for authentication ให้กด Browse… 

3. เลือกไฟล์ Private Key (.ppk) ที่คุณบันทึกไว้ในขั้นตอนแรก

4. ไปที่ Connection > Data แล้วใส่ชื่อ Username ในช่อง Auto-login username เพื่อจะได้ไม่ต้องพิมพ์ชื่อ User ตอนล็อกอิน

5. กลับไปที่หน้า Session ใส่ IP Address ของเซิร์ฟเวอร์ และ Save ชื่อโปรไฟล์ไว้

เมื่อเชื่อมต่อ ระบบจะถาม Passphrase แทนรหัสผ่าน

ขั้นตอนที่ 4: ทดสอบการใช้งาน

1. เลือก Session ที่บันทึกไว้แล้วกด Open

2. หากตั้งค่าถูกต้อง เซิร์ฟเวอร์จะไม่ถามรหัสผ่าน (ถ้าคุณตั้ง Passphrase ไว้ในตอนแรก ระบบจะถามรหัสของไฟล์ Key แทน)

3. คุณจะเข้าสู่ระบบได้ทันที

Note:
อย่าทำไฟล์ Private Key (.ppk) หลุดไปให้ผู้อื่น และควรเก็บสำรองไว้ในที่ปลอดภัย เพราะถ้าทำหายและคุณปิดระบบล็อกอินด้วยรหัสผ่านไปแล้ว คุณอาจจะเข้าเซิร์ฟเวอร์ไม่ได้อีกเลย


(ทางเลือกขั้นสูง) ใช้ Pageant เพื่อไม่ต้องพิมพ์ Passphrase บ่อย

สำหรับผู้ดูแลหลายเซิร์ฟเวอร์ สามารถใช้ Pageant

  • Pageant คือ SSH Agent บน Windows

  • โหลด Private Key ครั้งเดียว

  • PuTTY ทุก Session จะใช้งานได้ทันที

เหมาะกับงาน Admin แต่ควรใช้เฉพาะเครื่องที่ปลอดภัย


ขั้นตอนที่ 5: ปิดการ Login ด้วยรหัสผ่าน (แนะนำ)

เมื่อทดสอบ SSH Key ใช้งานได้แล้ว ให้ Hardening เพิ่ม

sudo nano /etc/ssh/sshd_config

ตั้งค่า

PasswordAuthentication no
PubkeyAuthentication yes

จากนั้น

sudo systemctl restart ssh

⚠️ ควรทดสอบ SSH Key ก่อนปิด Password เสมอ เพื่อป้องกันล็อกตัวเองออกจากระบบ


สรุป

การใช้ SSH Key แทนรหัสผ่านบน PuTTY เป็นแนวปฏิบัติมาตรฐานของผู้ดูแลระบบมืออาชีพ

  • เพิ่มความปลอดภัยอย่างชัดเจน

  • ลดความเสี่ยงจากการโจมตีอัตโนมัติ

  • รองรับการทำ Server Hardening และ Automation

หากมองในภาพรวม SSH Key ไม่ใช่เรื่องยาก แต่ให้ผลลัพธ์ด้านความมั่นคงปลอดภัยที่ “คุ้มค่าเกินลงทุน” อย่างแท้จริง

Note.

แนะนำให้ใช้ SSH Key เป็นค่าเริ่มต้นสำหรับ Ubuntu Server, Rocky Linux และ Cloud Server ทุกเครื่อง



เขียนและรวบรวมโดย
Dr.Arnut Ruttanatirakul
Technology Lecturer, KMITL
11 January 2025