วิธีเชื่อมต่อ VPS ด้วย SSH ทั้ง Windows และ macOS

SSH (Secure Shell) คือโปรโตคอลสำหรับเชื่อมต่อเข้าเซิร์ฟเวอร์จากระยะไกลแบบเข้ารหัส เมื่อเช่า VPS คุณจะไม่ได้หน้าจอหรือเมาส์ แต่สั่งงานทุกอย่างผ่านบรรทัดคำสั่งที่เชื่อมด้วย SSH ไม่ว่าจะติดตั้งซอฟต์แวร์ ตั้งค่าบริการ หรือจัดการไฟล์ บทความนี้อธิบายวิธีเชื่อมต่อ SSH จากทั้ง Windows และ macOS พร้อมแนวทางตั้งค่าให้ปลอดภัย

ข้อมูลที่ต้องมีก่อนเชื่อมต่อ

เชื่อมต่อบน Windows (วิธีที่ 1: PuTTY)

  1. ดาวน์โหลด PuTTY จาก putty.org
  2. เปิด PuTTY → ช่อง Host Name ใส่ IP Address ของ VPS
  3. Port: 22, Connection type: SSH
  4. คลิก Open → กด Yes เมื่อมี Security Alert ครั้งแรก
  5. 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

เพิ่มความปลอดภัย: เปลี่ยน 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 เสมอ ไฟล์ที่ได้จะมีสองส่วน:

คัดลอก 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 ควรปฏิบัติตามแนวทางเหล่านี้เพื่อให้เซิร์ฟเวอร์มั่นคงและปลอดภัยในระยะยาว การตั้งค่าเบื้องต้นที่ถูกต้องจะช่วยลดภาระในการดูแลระบบและลดความเสี่ยงด้านความปลอดภัยได้อย่างมีนัยสำคัญ

หากต้องการรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่า 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