SSH ทำงานอย่างไร? พื้นฐานสำคัญที่คนดูแลเซิร์ฟเวอร์ต้องรู้
ถ้าคุณจัดการเซิร์ฟเวอร์ Linux คุณใช้ SSH ทุกวันอยู่แล้ว SSH (Secure Shell) เป็นโปรโตคอลที่ให้เราควบคุมเซิร์ฟเวอร์จากระยะไกลอย่างปลอดภัย เข้ารหัสข้อมูลทั้งหมดที่ส่งไปมา เหมือนอุโมงค์ลับที่ไม่มีใครแอบดักฟังได้
ก่อนมี SSH คนใช้ Telnet ที่ส่งข้อมูลเป็น Plain Text อ่านได้หมด ปัจจุบันไม่มีใครแนะนำให้ใช้ Telnet อีกแล้ว
SSH ทำงานอย่างไร?
Key Exchange สร้างกุญแจเข้ารหัส
เมื่อเชื่อมต่อครั้งแรก Client กับ Server ตกลงวิธีเข้ารหัส แล้วแลกเปลี่ยนกุญแจผ่าน Diffie-Hellman Key Exchange กุญแจนี้สร้าง Session Key สำหรับเข้ารหัสข้อมูลตลอดการเชื่อมต่อ
Encryption เข้ารหัสทุกอย่าง
ข้อมูลทุกอย่างที่ส่งผ่าน SSH ถูกเข้ารหัสด้วย Symmetric Encryption แม้ถูกดักจับ Packet ก็อ่านไม่ออก พร้อม MAC (Message Authentication Code) ตรวจสอบว่าข้อมูลไม่ถูกแก้ไขระหว่างทาง
Authentication ยืนยันตัวตน
SSH รองรับการยืนยันตัวตน 2 แบบหลัก คือ Password และ SSH Key ซึ่งแต่ละแบบมีข้อดีข้อเสียต่างกัน
SSH Key vs Password เลือกแบบไหนดี?
Password ง่ายแต่เสี่ยง
ใส่ Username กับ Password ก็เข้าได้ แต่ถ้ารหัสไม่แข็งแรง หรือมีคน Brute Force ก็โดนเจาะได้ เซิร์ฟเวอร์ที่เปิด Port 22 จะโดน Bot มาลองเข้าตลอดเวลา
SSH Key ปลอดภัยกว่ามาก
สร้างคู่กุญแจ Private Key เก็บในเครื่อง Public Key วางบนเซิร์ฟเวอร์ ตอนเชื่อมต่อ Server ท้าทายด้วย Public Key แล้ว Client ตอบด้วย Private Key ถ้าตรงกันก็เข้าได้เลยไม่ต้องพิมพ์รหัส
แนะนำใช้ SSH Key เป็นหลัก แล้วปิด Password Authentication ไปเลยจะปลอดภัยที่สุด
คำสั่ง SSH ที่ต้องรู้
เชื่อมต่อเซิร์ฟเวอร์
ssh user@server-ip
คัดลอกไฟล์ด้วย SCP
scp file.txt user@server-ip:/path/
Port Forwarding
ssh -L 8080:localhost:3000 user@server-ip
เข้าถึง Service ที่ไม่เปิดจากภายนอกได้ เช่น Database หรือ Admin Panel
เคล็ดลับรักษาความปลอดภัย SSH
เปลี่ยน Port เริ่มต้น
แก้ไฟล์ sshd_config เปลี่ยนจาก Port 22 เป็น Port อื่น ลด Bot Scan ได้มาก
ปิด Root Login
ตั้ง PermitRootLogin no ใน sshd_config ใช้ User ปกติแล้ว sudo แทน ปลอดภัยกว่าเข้า Root ตรง ๆ
ใช้ Fail2Ban
ติดตั้ง Fail2Ban แบน IP ที่ลองเข้าผิดหลายครั้ง ป้องกัน Brute Force ได้ดี
SSH Config File สำหรับจัดการหลายเซิร์ฟเวอร์
สร้างไฟล์ ~/.ssh/config เก็บค่าเชื่อมต่อทุกเซิร์ฟเวอร์ พิมพ์แค่ ssh ชื่อที่ตั้งไว้ก็เชื่อมต่อได้ทันที
จัดการเซิร์ฟเวอร์ด้วย SSH อย่างมืออาชีพ
SSH เป็นเครื่องมือหลักในการจัดการเซิร์ฟเวอร์ทุกอย่าง ตั้งแต่ติดตั้งซอฟต์แวร์ แก้ Config ดู Log จนถึง Restart Service
VPS ของ DriteStudio รองรับ SSH เต็มรูปแบบพร้อม Root Access เริ่มต้นได้ทันที สำหรับเซิร์ฟเวอร์ที่ต้องการประสิทธิภาพสูง Dedicated Server เป็นทางเลือกที่ตอบโจทย์ พร้อมบริการ Security ดูแลความปลอดภัยครบวงจร
คำถามที่พบบ่อย (FAQ)
SSH ใช้ Port อะไร?
Port เริ่มต้นคือ 22 แต่แนะนำให้เปลี่ยนเป็น Port อื่นเพื่อลดการโจมตีจาก Bot ที่สแกน Port 22 อยู่ตลอดเวลา
SSH Key หายทำอย่างไร?
หาก Private Key หาย จะไม่สามารถเชื่อมต่อเซิร์ฟเวอร์ได้ ควรเก็บ Backup ของ Key ไว้ในที่ปลอดภัย หรือตั้งค่าการเข้าถึงทางอื่นไว้สำรอง เช่น Console จากผู้ให้บริการ
ทำไม SSH ถึงปลอดภัยกว่า Telnet?
SSH เข้ารหัสข้อมูลทุกอย่างรวมถึง Password ขณะที่ Telnet ส่งข้อมูลเป็น Plain Text ที่ใครก็ดักจับและอ่านได้ SSH จึงเป็นมาตรฐานสำหรับการจัดการเซิร์ฟเวอร์ในปัจจุบัน
สรุป
SSH เป็นพื้นฐานสำคัญที่สุดสำหรับคนทำงานกับเซิร์ฟเวอร์ Linux ใช้ SSH Key แทนรหัสผ่าน ตั้งค่า Security ให้ดี แค่นี้เซิร์ฟเวอร์ก็ปลอดภัยขึ้นมาก เริ่มจากสร้าง SSH Key แล้วตั้งค่าตามเคล็ดลับที่แนะนำได้เลย