
SSH (Secure Shell) คือโปรโตคอลสำหรับเชื่อมต่อเข้าเซิร์ฟเวอร์จากระยะไกลแบบเข้ารหัส เมื่อเช่า VPS คุณจะไม่ได้หน้าจอหรือเมาส์ แต่สั่งงานทุกอย่างผ่านบรรทัดคำสั่งที่เชื่อมด้วย SSH ไม่ว่าจะติดตั้งซอฟต์แวร์ ตั้งค่าบริการ หรือจัดการไฟล์ บทความนี้อธิบายวิธีเชื่อมต่อ SSH จากทั้ง Windows และ macOS พร้อมแนวทางตั้งค่าให้ปลอดภัย
ข้อมูลที่ต้องมีก่อนเชื่อมต่อ
- IP Address ของ VPS (ได้รับในอีเมลหลังสั่งซื้อ)
- Username: ปกติเป็น
rootสำหรับ Linux VPS - Password หรือ SSH Private Key
- Port: ค่าเริ่มต้นคือ
22
เชื่อมต่อบน Windows (วิธีที่ 1: PuTTY)
- ดาวน์โหลด PuTTY จาก putty.org
- เปิด PuTTY → ช่อง Host Name ใส่ IP Address ของ VPS
- Port: 22, Connection type: SSH
- คลิก Open → กด Yes เมื่อมี Security Alert ครั้งแรก
- Login as:
root→ กรอก Password
เชื่อมต่อบน Windows (วิธีที่ 2: Windows Terminal)
Windows 10/11 มี SSH Client ในตัวแล้ว เปิด Command Prompt หรือ PowerShell แล้วพิมพ์:
ssh root@YOUR_VPS_IP
กรอก Password เมื่อถูกถาม
เชื่อมต่อบน macOS / Linux
เปิด Terminal (macOS: Cmd+Space พิมพ์ Terminal) แล้วพิมพ์:
ssh root@YOUR_VPS_IP
หากใช้ SSH Key:
ssh -i /path/to/private_key root@YOUR_VPS_IP
คำสั่ง SSH พื้นฐานหลัง Login
ls -la— ดูรายการไฟล์และโฟลเดอร์pwd— แสดง Directory ปัจจุบันcd /var/www/html— เข้าโฟลเดอร์apt update && apt upgrade— อัปเดตระบบ (Ubuntu/Debian)df -h— ดูพื้นที่ Diskfree -h— ดู RAM ที่ใช้งานexit— ออกจาก SSH Session
เพิ่มความปลอดภัย: เปลี่ยน Port SSH
เปลี่ยน Port จาก 22 เป็นตัวเลขอื่นเพื่อลด Bot Scan:
nano /etc/ssh/sshd_config
หาบรรทัด #Port 22 → เปลี่ยนเป็น Port 2222 (หรือเลขที่ต้องการ) → Restart SSH: systemctl restart sshd
ความปลอดภัย: ไม่ควรใช้ root โดยตรงในการทำงานประจำวัน ควรสร้าง User ใหม่และ Add เข้า sudo group แทน: adduser myuser และ usermod -aG sudo myuser
ตั้งค่า SSH Key Authentication ตั้งแต่ต้น
การใช้ SSH Key แทนรหัสผ่านเป็นวิธีที่ปลอดภัยที่สุดในการเข้าถึง VPS คู่กุญแจ SSH ประกอบด้วย Private Key ที่เก็บในเครื่องตัวเอง และ Public Key ที่อัปโหลดไปยัง VPS ทุกครั้งที่เชื่อมต่อ ระบบจะตรวจสอบคู่กุญแจโดยอัตโนมัติ ไม่ต้องกรอกรหัสผ่านอีก
สร้าง SSH Key Pair บนเครื่องของคุณ
รันคำสั่งนี้บน Windows Terminal, macOS Terminal หรือ Linux:
ssh-keygen -t ed25519 -C "[email protected]"
ระบบจะถามตำแหน่งบันทึกไฟล์และ Passphrase สำหรับป้องกันชั้นที่สอง แนะนำให้ตั้ง Passphrase เสมอ ไฟล์ที่ได้จะมีสองส่วน:
~/.ssh/id_ed25519— Private Key (เก็บไว้ในเครื่องเท่านั้น ห้ามแชร์)~/.ssh/id_ed25519.pub— Public Key (อัปโหลดไปยัง VPS)
คัดลอก Public Key ไปยัง VPS
วิธีที่ง่ายที่สุดคือใช้คำสั่ง ssh-copy-id (macOS/Linux) หรือคัดลอกแบบ Manual:
# วิธี ssh-copy-id (macOS/Linux)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@YOUR_VPS_IP
# วิธี Manual (วาง Public Key ใน authorized_keys)
cat ~/.ssh/id_ed25519.pub | ssh root@YOUR_VPS_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
หลังทำแล้วให้ทดสอบล็อกอินด้วย Key ก่อน จากนั้นจึงปิดการล็อกอินด้วยรหัสผ่านใน sshd_config โดยตั้ง PasswordAuthentication no
ตั้งค่า Firewall (UFW) คู่กับ SSH
Firewall เป็นด่านแรกของการป้องกัน VPS ควรตั้งให้อนุญาตเฉพาะ Port ที่จำเป็น Ubuntu/Debian มีเครื่องมือ UFW ที่ใช้งานง่าย ขั้นตอนพื้นฐานหลัง Login SSH ครั้งแรกมีดังนี้:
# ติดตั้ง UFW (ถ้ายังไม่มี)
apt install ufw -y
# อนุญาต SSH Port ก่อน (สำคัญมาก — ต้องทำก่อน enable)
ufw allow 22/tcp
# อนุญาต Web Server (ถ้าใช้งาน)
ufw allow 80/tcp
ufw allow 443/tcp
# เปิดใช้งาน Firewall
ufw enable
# ตรวจสอบสถานะ
ufw status verbose
หากเปลี่ยน SSH Port แล้ว อย่าลืม Allow Port ใหม่ก่อน Enable UFW มิฉะนั้นจะ Lock ตัวเองออกจาก VPS ได้ ตัวอย่าง: ufw allow 2222/tcp
| บริการ | Port | คำสั่ง UFW | หมายเหตุ |
|---|---|---|---|
| SSH | 22 | ufw allow 22/tcp | ต้อง Allow ก่อน Enable |
| HTTP | 80 | ufw allow 80/tcp | เว็บ HTTP ทั่วไป |
| HTTPS | 443 | ufw allow 443/tcp | เว็บ SSL/TLS |
| MySQL | 3306 | ufw deny 3306 | ปิดสาธารณะ ใช้ Tunnel แทน |
การ Transfer ไฟล์ผ่าน SCP และ SFTP
SSH ไม่ได้ใช้แค่สำหรับเข้าใช้บรรทัดคำสั่ง แต่ยังรองรับการโอนไฟล์ด้วยโปรโตคอล SCP (Secure Copy) และ SFTP (SSH File Transfer Protocol) ซึ่งทำงานบน SSH Channel เดียวกัน จึงเข้ารหัสข้อมูลทุกไฟล์ที่ถ่ายโอน
SCP — คัดลอกไฟล์ผ่าน Command Line
# อัปโหลดไฟล์จากเครื่องตัวเองไปยัง VPS
scp /path/to/local/file.zip root@YOUR_VPS_IP:/var/www/html/
# ดาวน์โหลดไฟล์จาก VPS มายังเครื่องตัวเอง
scp root@YOUR_VPS_IP:/var/log/nginx/error.log ~/Downloads/
# คัดลอกโฟลเดอร์ทั้งหมด (ใช้ -r)
scp -r root@YOUR_VPS_IP:/var/www/html/mysite ~/backup/
SFTP — จัดการไฟล์แบบ Interactive
SFTP ให้ Shell สำหรับจัดการไฟล์คล้าย FTP แต่ปลอดภัยกว่า เปิดได้ด้วย:
sftp root@YOUR_VPS_IP
คำสั่งพื้นฐานใน SFTP Shell ได้แก่ ls (ดูไฟล์บน VPS), lls (ดูไฟล์ในเครื่อง), put file.txt (อัปโหลด), get file.txt (ดาวน์โหลด) และ exit (ออก) โปรแกรมอย่าง FileZilla หรือ Cyberduck ก็รองรับ SFTP ผ่านหน้าจอกราฟิกได้เช่นกัน
ตรวจสอบ SSH Session และ Log ที่สำคัญ
การตรวจสอบ Log ของ SSH อย่างสม่ำเสมอช่วยให้รู้ว่ามีใครพยายาม Login เข้าระบบโดยไม่ได้รับอนุญาตหรือไม่ เซิร์ฟเวอร์ที่เปิดพอร์ต 22 ไว้บนอินเทอร์เน็ตมักพบการ Scan หรือ Brute Force จาก Bot ตลอดเวลา การตั้ง Fail2ban ควบคู่กับ SSH Key ถือเป็นมาตรฐานขั้นต่ำที่ผู้ดูแล VPS ทุกคนควรทำตั้งแต่วันแรกที่เปิดเซิร์ฟเวอร์ ไม่ควรรอจนถูกโจมตีสำเร็จแล้วค่อยมาแก้ไข เพราะในบางกรณีความเสียหายที่เกิดขึ้นอาจเป็น Ransomware หรือการติดตั้ง Malware ที่ยากจะกำจัดออกในภายหลัง
คำสั่ง Log ที่ควรรู้
# ดู Login สำเร็จล่าสุด
last -n 20
# ดู Login ที่ล้มเหลว (Ubuntu/Debian)
grep "Failed password" /var/log/auth.log | tail -30
# ดู Login ที่ล้มเหลว (CentOS/AlmaLinux)
grep "Failed password" /var/log/secure | tail -30
# ดู Session ที่กำลังเชื่อมต่ออยู่
who
# ดู Process ของ SSH
ps aux | grep sshd
ถ้าพบว่ามีการ Login ผิดพลาดจาก IP เดิมซ้ำๆ ให้พิจารณาติดตั้ง Fail2ban ซึ่งจะบล็อก IP ที่พยายาม Login เกินจำนวนครั้งที่กำหนดโดยอัตโนมัติ หรือใช้ UFW Block IP นั้นด้วยคำสั่ง ufw deny from BAD_IP_ADDRESS
| ไฟล์ Log | ระบบปฏิบัติการ | เนื้อหา |
|---|---|---|
| /var/log/auth.log | Ubuntu / Debian | SSH Login, sudo, PAM |
| /var/log/secure | CentOS / AlmaLinux | SSH Login, sudo, su |
| journalctl -u sshd | systemd ทุกเวอร์ชัน | SSH Daemon log แบบละเอียด |
แนวทางตั้งค่า SSH สำหรับ Production Server
เมื่อ VPS ของคุณพร้อมใช้งานจริงบน Production ควรปฏิบัติตามแนวทางเหล่านี้เพื่อให้เซิร์ฟเวอร์มั่นคงและปลอดภัยในระยะยาว การตั้งค่าเบื้องต้นที่ถูกต้องจะช่วยลดภาระในการดูแลระบบและลดความเสี่ยงด้านความปลอดภัยได้อย่างมีนัยสำคัญ
- ปิด Root Login: ตั้ง
PermitRootLogin noในsshd_configแล้วใช้ User ปกติที่มีสิทธิ์ sudo แทน การปิด Root Login ทำให้ผู้โจมตีต้องเดาทั้ง Username และ Password ซึ่งยากขึ้นหลายเท่า - ใช้ SSH Key เท่านั้น: ตั้ง
PasswordAuthentication noหลังจาก Setup SSH Key สำเร็จแล้ว ทดสอบล็อกอินด้วย Key ให้ได้ก่อนปิดการล็อกอินด้วยรหัสผ่าน - จำกัดจำนวนครั้งการ Login: ตั้ง
MaxAuthTries 3เพื่อให้ตัดการเชื่อมต่อหากล็อกอินผิดพลาดเกิน 3 ครั้ง - ตั้ง Idle Timeout: ตั้ง
ClientAliveInterval 300และClientAliveCountMax 2เพื่อตัดการเชื่อมต่อที่ไม่มีการใช้งานนาน 10 นาที - บันทึก Login: ตรวจสอบ Log อย่างน้อยสัปดาห์ละครั้ง หรือตั้ง Alert ผ่าน Fail2ban เมื่อมีการล็อกอินผิดพลาดเกินเกณฑ์ที่กำหนด
- อัปเดต OpenSSH: รัน
apt upgrade openssh-serverเป็นประจำเพื่อรับ Security Patch ล่าสุด ช่องโหว่ใหม่ๆ ของ SSH มักได้รับการแก้ไขรวดเร็ว แต่ต้องอัปเดตด้วยตัวเองเสมอ
หากต้องการรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่า Firewall และ SSH Key บน VPS สามารถอ่านต่อในบทความ ทำให้ VPS ปลอดภัย: ตั้งค่า Firewall และ SSH Key
คำถามที่พบบ่อย
SSH Key ปลอดภัยกว่ารหัสผ่านอย่างไร
SSH Key ใช้คู่กุญแจที่ยาวและคาดเดาไม่ได้ ต่างจากรหัสผ่านที่ถูกเดาหรือ Brute Force ได้ เมื่อตั้ง Key แล้วควรปิดการล็อกอินด้วยรหัสผ่านเพื่อความปลอดภัยสูงสุด
เชื่อม SSH จาก Windows ต้องลงโปรแกรมไหม
Windows รุ่นใหม่มีคำสั่ง ssh มากับ Command Prompt และ PowerShell อยู่แล้ว ส่วนโปรแกรมอย่าง PuTTY เป็นทางเลือกที่มีหน้าจอช่วยจัดการ
SSH ใช้พอร์ตอะไร เปลี่ยนได้ไหม
ค่าเริ่มต้นคือพอร์ต 22 เปลี่ยนเป็นพอร์ตอื่นได้เพื่อลดการสุ่มโจมตี แต่ควรทำควบคู่กับ SSH Key และ Firewall ไม่ใช่พึ่งการเปลี่ยนพอร์ตอย่างเดียว
ต้องการ VPS Linux ราคาถูก?
AsiaGB VPS Linux เริ่มต้น 500 บาท/เดือน Full Root Access ไทย และ สิงคโปร์ พร้อม Dedicated IP
ดูแพ็กเกจ VPS