跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

การใช้ SSH: Command Line Access

จากบทความที่แล้ว เรา Deploy โปรเจกต์ PHP ด้วย FTP Client ซึ่งมีข้อจำกัดด้านความเร็วและความปลอดภัย ในบทนี้ เราจึงเรียนรู้วิธีการใช้ SSH (Secure Shell) เพื่อเข้าถ...

การใช้ SSH: Command Line Access

ในบทความที่แล้ว เราได้เรียนรู้วิธีการ Deploy โปรเจกต์ PHP ของเราไปยัง Shared Hosting โดยใช้ FTP Client ซึ่งเป็นวิธีที่ง่ายและสะดวก แต่ก็มีข้อจำกัดบางอย่าง เช่น ความเร็วในการถ่ายโอนข้อมูลที่อาจช้า และความปลอดภัยที่ไม่สูงเท่าที่ควร ในบทนี้ เราจะมาเรียนรู้วิธีการใช้ SSH (Secure Shell) ซึ่งเป็นอีกทางเลือกหนึ่งที่ปลอดภัยและยืดหยุ่นกว่าในการเข้าถึงและจัดการ Server ผ่าน Command Line

SSH ช่วยให้เราสามารถควบคุม Server ได้อย่างเต็มที่ ไม่ว่าจะเป็นการอัพโหลดไฟล์, แก้ไขไฟล์, รันคำสั่งต่างๆ, หรือแม้กระทั่งการจัดการ Database ทั้งหมดนี้ทำได้ผ่าน Command Line Interface (CLI) ซึ่งอาจจะดูยากสำหรับผู้เริ่มต้น แต่เมื่อคุ้นเคยแล้ว จะพบว่ามันมีประสิทธิภาพและสะดวกกว่าการใช้ GUI (Graphical User Interface) อย่าง FTP Client ในหลายๆ กรณี

SSH คืออะไร?

SSH คือโปรโตคอลเครือข่ายที่ช่วยให้เราสามารถสร้างการเชื่อมต่อที่ปลอดภัยไปยัง Server ระยะไกล มันเข้ารหัสข้อมูลทั้งหมดที่ส่งผ่านเครือข่าย ทำให้ยากต่อการดักจับข้อมูลสำคัญ เช่น รหัสผ่าน หรือข้อมูลส่วนตัวอื่นๆ

การเชื่อมต่อ SSH

ก่อนที่เราจะเริ่มใช้งาน SSH ได้ เราต้องมีสิ่งเหล่านี้:

  • Host Address/IP Address: ที่อยู่ของ Server ที่เราต้องการเชื่อมต่อ
  • Username: ชื่อผู้ใช้ที่เราใช้ในการเข้าสู่ระบบ Server
  • Password/SSH Key: รหัสผ่าน หรือ SSH Key ที่ใช้ในการยืนยันตัวตน
  • SSH Client: โปรแกรมที่ใช้ในการเชื่อมต่อ SSH (เช่น PuTTY, Terminal, iTerm2)

ขั้นตอนการเชื่อมต่อ SSH:

  1. เปิด SSH Client: เปิดโปรแกรม SSH Client ที่คุณเลือกใช้
  2. ป้อนข้อมูลการเชื่อมต่อ: ป้อน Host Address/IP Address, Username, และ Port (โดยทั่วไปคือ 22)
  3. ยืนยันตัวตน: ป้อน Password หรือเลือก SSH Key ที่ใช้ในการยืนยันตัวตน
  4. เชื่อมต่อ: กดปุ่ม Connect หรือ Enter เพื่อเชื่อมต่อ

ตัวอย่างการเชื่อมต่อ SSH (ใช้ Terminal บน macOS/Linux):

ssh username@host_address

เมื่อคุณรันคำสั่งนี้ Terminal จะถามรหัสผ่าน หากคุณตั้งค่า SSH Key ไว้ คุณจะไม่ต้องป้อนรหัสผ่าน

ตัวอย่างการเชื่อมต่อ SSH (ใช้ PuTTY บน Windows):

  1. เปิด PuTTY
  2. ในช่อง Host Name (or IP address) ให้ป้อน Host Address/IP Address
  3. ตรวจสอบให้แน่ใจว่า Port คือ 22 และ Connection type คือ SSH
  4. คลิก Open
  5. PuTTY จะแสดงหน้าต่าง Terminal ขึ้นมา ป้อน Username และ Password เมื่อระบบถาม

กรณีใช้งานจริง:

สมมติว่าเรามี Server ที่ Host Address คือ `192.168.1.100` และ Username คือ `deployer` เราจะเชื่อมต่อ SSH โดยใช้คำสั่ง:

ssh deployer@192.168.1.100

ข้อผิดพลาดที่พบบ่อย:

  • Connection refused: อาจเกิดจาก Server ไม่ได้เปิด SSH หรือ Firewall บล็อกการเชื่อมต่อ
  • Incorrect password: ตรวจสอบให้แน่ใจว่าคุณป้อนรหัสผ่านถูกต้อง
  • Host key verification failed: อาจเกิดจาก Server มีการเปลี่ยนแปลง SSH Key ให้ลบ SSH Key เก่าออกจาก `~/.ssh/known_hosts` แล้วลองเชื่อมต่อใหม่

การรันคำสั่ง

เมื่อเราเชื่อมต่อ SSH สำเร็จแล้ว เราสามารถรันคำสั่งต่างๆ บน Server ได้เหมือนกับว่าเรากำลังใช้งาน Terminal บน Server โดยตรง

คำสั่งพื้นฐานที่ควรรู้:

  • ls: แสดงรายการไฟล์และโฟลเดอร์ใน Directory ปัจจุบัน
  • cd: เปลี่ยน Directory
  • pwd: แสดง Path ของ Directory ปัจจุบัน
  • mkdir: สร้าง Directory ใหม่
  • rm: ลบไฟล์หรือ Directory
  • cp: คัดลอกไฟล์หรือ Directory
  • mv: ย้ายหรือเปลี่ยนชื่อไฟล์หรือ Directory
  • nano/vim: แก้ไขไฟล์ (Text Editor)
  • cat: แสดงเนื้อหาของไฟล์
  • chmod: เปลี่ยน Permissions ของไฟล์หรือ Directory
  • chown: เปลี่ยน Owner ของไฟล์หรือ Directory

ตัวอย่างการรันคำสั่ง:

สมมติว่าเราต้องการแสดงรายการไฟล์ใน Directory `/var/www/html` เราจะใช้คำสั่ง:

ls /var/www/html

ถ้าเราต้องการเปลี่ยน Directory ไปยัง `/var/www/html` เราจะใช้คำสั่ง:

cd /var/www/html

กรณีใช้งานจริง:

สมมติว่าเราต้องการ Restart Web Server (เช่น Apache) เราจะใช้คำสั่ง:

sudo service apache2 restart

ข้อผิดพลาดที่พบบ่อย:

  • Permission denied: อาจเกิดจากเราไม่มีสิทธิ์ในการรันคำสั่งนั้นๆ ลองใช้ sudo นำหน้าคำสั่ง
  • Command not found: อาจเกิดจากคำสั่งนั้นไม่ได้ถูกติดตั้งบน Server หรือไม่ได้อยู่ใน PATH

การจัดการไฟล์

SSH ไม่ได้มีไว้แค่รันคำสั่งเท่านั้น เรายังสามารถใช้มันในการจัดการไฟล์ต่างๆ บน Server ได้อีกด้วย

การอัพโหลดไฟล์:

เราสามารถใช้คำสั่ง scp (Secure Copy) ในการอัพโหลดไฟล์จากเครื่องของเราไปยัง Server:

scp local_file username@host_address:remote_directory

ตัวอย่าง:

สมมติว่าเราต้องการอัพโหลดไฟล์ `index.php` จากเครื่องของเราไปยัง Directory `/var/www/html` บน Server เราจะใช้คำสั่ง:

scp index.php deployer@192.168.1.100:/var/www/html

การดาวน์โหลดไฟล์:

เราสามารถใช้คำสั่ง scp ในการดาวน์โหลดไฟล์จาก Server มายังเครื่องของเรา:

scp username@host_address:remote_file local_directory

ตัวอย่าง:

สมมติว่าเราต้องการดาวน์โหลดไฟล์ `config.php` จาก Directory `/var/www/html` บน Server มายัง Directory ปัจจุบันบนเครื่องของเรา เราจะใช้คำสั่ง:

scp deployer@192.168.1.100:/var/www/html/config.php .

การแก้ไขไฟล์:

เราสามารถใช้ Text Editor อย่าง nano หรือ vim ในการแก้ไขไฟล์บน Server:

nano /var/www/html/index.php

กรณีใช้งานจริง:

สมมติว่าเราต้องการแก้ไขไฟล์ `.env` เพื่อเปลี่ยนค่า Environment Variables เราจะใช้คำสั่ง:

nano .env

ข้อผิดพลาดที่พบบ่อย:

  • Permission denied: อาจเกิดจากเราไม่มีสิทธิ์ในการแก้ไขไฟล์นั้นๆ ลองใช้ sudo นำหน้าคำสั่ง (เช่น sudo nano .env)
  • File not found: ตรวจสอบให้แน่ใจว่าไฟล์นั้นมีอยู่จริง

สรุป

การใช้ SSH เป็นทักษะที่สำคัญสำหรับนักพัฒนา PHP ทุกคน มันช่วยให้เราสามารถเข้าถึงและจัดการ Server ได้อย่างปลอดภัยและมีประสิทธิภาพ ในบทนี้ เราได้เรียนรู้พื้นฐานของการเชื่อมต่อ SSH, การรันคำสั่ง, และการจัดการไฟล์ หวังว่าคุณจะสามารถนำความรู้เหล่านี้ไปประยุกต์ใช้ในการ Deploy และจัดการโปรเจกต์ PHP ของคุณได้

ในบทถัดไป เราจะมาเรียนรู้วิธีการตั้งค่า Database บน Server ซึ่งเป็นส่วนสำคัญในการ Deploy โปรเจกต์ PHP ที่มีการใช้งาน Database

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务