System Track
Network
Common Protocols
SSH
เรียนรู้ SSH สำหรับผู้เริ่มต้น: remote server อย่างปลอดภัย, การยืนยันตัวตนด้วย key, และแนวทาง hardening เบื้องต้น
1. Core Idea: SSH คืออะไร
SSH (Secure Shell) คือโปรโตคอลสำหรับเชื่อมต่อไปควบคุมเครื่องระยะไกลอย่างปลอดภัย นิยมใช้สำหรับเข้าเซิร์ฟเวอร์ Linux, รันคำสั่ง, โอนไฟล์ และตั้งค่าเครื่องจากระยะไกล
- ทำงานผ่านการเข้ารหัสข้อมูล
- พอร์ตมาตรฐานคือ 22
- รองรับทั้งการล็อกอินด้วยรหัสผ่านและ SSH Key
- เป็นพื้นฐานของงาน DevOps และ Server Administration
2. Mental Model: กุญแจบ้านธรรมดา vs กุญแจดิจิทัลคู่
การล็อกอินด้วย SSH Key เปรียบเหมือนมีกุญแจดิจิทัลคู่: กุญแจส่วนตัว (Private Key) อยู่กับเรา และกุญแจสาธารณะ (Public Key) อยู่ที่เซิร์ฟเวอร์ เมื่อจับคู่ถูกต้องจึงเข้าได้ ลดความเสี่ยงจากการเดารหัสผ่าน
SSH ใช้การเข้ารหัสและการยืนยันตัวตนเพื่อให้การ remote ปลอดภัยขึ้น
3. Protocol Breakdown: องค์ประกอบสำคัญของ SSH
| องค์ประกอบ | ความหมาย | ใช้งานเมื่อไร |
|---|---|---|
| SSH Client | โปรแกรมฝั่งผู้ใช้ เช่น terminal | เริ่มการเชื่อมต่อไปยังเซิร์ฟเวอร์ |
| SSH Server | บริการบนเครื่องปลายทาง (sshd) | รอรับการเชื่อมต่อและตรวจสิทธิ์ |
| Password Auth | ล็อกอินด้วยรหัสผ่าน | ใช้ได้แต่ควรจำกัดใน production |
| Key-based Auth | ล็อกอินด้วยคู่กุญแจ | แนะนำสำหรับระบบจริง |
| Known Hosts | ลายนิ้วมือเซิร์ฟเวอร์ที่เคยเชื่อมต่อ | ช่วยตรวจจับการปลอมแปลงปลายทาง |
4. Worked Example: เข้าเซิร์ฟเวอร์เพื่อรีสตาร์ตแอป
- 1) นักพัฒนารันคำสั่ง SSH จากเครื่องตัวเอง
- 2) เครื่องปลายทางขอการยืนยันตัวตน
- 3) ระบบตรวจ key หรือ password
- 4) เมื่อผ่านแล้วจึงเปิด shell ให้รันคำสั่ง เช่น restart service
- 5) ปิดการเชื่อมต่อเมื่อทำงานเสร็จเพื่อลดความเสี่ยง
ตัวอย่างคำสั่ง SSHbash
ssh deploy@203.0.113.10
sudo systemctl restart my-app
exit5. Practical Notes: จุดสับสนของมือใหม่
- SSH กับ HTTPS คนละโปรโตคอล แต่ทั้งคู่ใช้การเข้ารหัส
- ถ้าเครื่องถามยืนยัน fingerprint ครั้งแรก ควรตรวจสอบก่อนตอบ yes
- หลีกเลี่ยงการแชร์ private key และตั้ง passphrase ให้ key
- งานจริงมักปิด password login และใช้ key-based auth เป็นหลัก
6. Recap + เชื่อมบทถัดไป
- SSH คือวิธี remote server ที่ปลอดภัยและใช้กันแพร่หลาย
- พอร์ตหลักคือ 22 และแนะนำการยืนยันตัวตนด้วย key
- รู้พื้นฐาน SSH แล้วจะทำงาน deploy และดูแลระบบได้มั่นใจขึ้น
- บทถัดไปจะดู SMTP/IMAP/POP3 สำหรับระบบอีเมล