🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

คู่มือฉบับสมบูรณ์: วิธีเชื่อมต่อ SFTP และตั้งค่าการยืนยันตัวตนด้วย Public Key ใน WinSCP

WinSCP เป็นเครื่องมือถ่ายโอนไฟล์ที่จำเป็นสำหรับการสร้างเว็บไซต์ ในบทความนี้ เราจะอธิบายอย่างละเอียดตั้งแต่ขั้นตอนพื้นฐานในการเชื่อมต่อ SFTP อย่างปลอดภัย ไปจนถึงวิธีการตั้งค่า "การยืนยันตัวตนด้วย Public Key" ที่ปลอดภัยยิ่งขึ้น พร้อมภาพประกอบ (แนวคิด) เราจะย่อยศัพท์เทคนิคและเตรียมโค้ดที่สามารถคัดลอกและวางได้ มาลองทำให้ 'ใช้งานได้' ไปด้วยกันเถอะ! 🚀


พื้นฐานของ WinSCP และ SFTP

ก่อนอื่น มาทบทวนพื้นฐานกันก่อน

WinSCP คืออะไร?

WinSCP คือโปรแกรมไคลเอนต์ถ่ายโอนไฟล์แบบโอเพนซอร์สที่ทำงานบน Windows ใช้สำหรับแลกเปลี่ยนไฟล์อย่างปลอดภัยระหว่างคอมพิวเตอร์ของคุณ (Local Computer) กับเซิร์ฟเวอร์ระยะไกล (Remote Server) ที่เว็บไซต์ของคุณตั้งอยู่ จุดเด่นคือการใช้งานที่ง่ายดายด้วยการลากและวาง (Drag & Drop)

SFTP คืออะไร?

SFTP (SSH File Transfer Protocol) คือหนึ่งในโปรโตคอล (กฎการสื่อสาร) สำหรับการส่งและรับไฟล์แบบเข้ารหัส ซึ่งแตกต่างจาก FTP แบบดั้งเดิมที่การสื่อสารทั้งหมดจะถูกเข้ารหัส ทำให้สามารถป้องกันการดักจับหรือแก้ไขข้อมูลจากบุคคลที่สามได้ จึงมีความปลอดภัยสูงมาก ในการสร้างเว็บสมัยใหม่ การเชื่อมต่อแบบ SFTP ถือเป็นมาตรฐานหลัก


การเชื่อมต่อ SFTP พื้นฐาน (การยืนยันตัวตนด้วยรหัสผ่าน)

ขั้นแรก ลองเชื่อมต่อ SFTP ด้วยวิธีที่ง่ายที่สุดโดยใช้รหัสผ่านกันก่อน เพียงแค่ป้อนข้อมูลที่ได้รับเมื่อสมัครใช้บริการเซิร์ฟเวอร์ก็สามารถทำได้ง่ายๆ

  1. เมื่อเปิด WinSCP ขึ้นมา จะปรากฏหน้าจอเข้าสู่ระบบ
  2. เลือก "New Site" และป้อนข้อมูลต่อไปนี้:
    • โปรโตคอลไฟล์: SFTP
    • ชื่อโฮสต์: ชื่อโฮสต์หรือที่อยู่ IP ของเซิร์ฟเวอร์ (เช่น `example.com`)
    • หมายเลขพอร์ต: 22 (เป็นพอร์ตมาตรฐานของ SFTP แต่อาจแตกต่างกันไปขึ้นอยู่กับเซิร์ฟเวอร์)
    • ชื่อผู้ใช้: ชื่อผู้ใช้ของเซิร์ฟเวอร์ (เช่น `user01`)
    • รหัสผ่าน: รหัสผ่านของเซิร์ฟเวอร์
  3. เมื่อป้อนข้อมูลเสร็จแล้ว ให้คลิกปุ่ม "บันทึก" (Save) จะมีหน้าต่างให้ตั้งชื่อไซต์ ให้ตั้งชื่อที่จำง่าย (เช่น `เว็บไซต์ของฉัน`) แล้วกด OK
  4. ครั้งต่อไป คุณสามารถเลือกชื่อไซต์ที่บันทึกไว้แล้วคลิก "เข้าสู่ระบบ" (Login) เพื่อเชื่อมต่อได้ทันที

เพียงเท่านี้คุณก็สามารถเชื่อมต่อกับเซิร์ฟเวอร์และอัปโหลดหรือดาวน์โหลดไฟล์ได้แล้ว แต่เพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น ขอแนะนำให้ทำตามขั้นตอนต่อไปคือ "การยืนยันตัวตนด้วย Public Key"


【หัวข้อหลัก】ขั้นตอนทั้งหมดในการตั้งค่า Public Key Authentication ใน WinSCP

การยืนยันตัวตนด้วยรหัสผ่านนั้นสะดวก แต่ก็มีความเสี่ยงที่ใครก็ตามที่รู้รหัสผ่านของคุณจะสามารถเข้าถึงเซิร์ฟเวอร์ได้ ดังนั้นจึงมี Public Key Authentication ขึ้นมา ซึ่งเป็นวิธีการยืนยันตัวตนที่ซับซ้อนและปลอดภัยกว่าโดยใช้คู่ "กุญแจ" และ "รูกุญแจ"

แม้ว่าขั้นตอนการตั้งค่าจะค่อนข้างเยอะ แต่ถ้าทำตามทีละขั้นตอนอย่างละเอียด คุณจะสามารถตั้งค่าได้อย่างแน่นอน!

ขั้นตอนที่ 1: การสร้างคู่คีย์ (Public Key และ Private Key)

ขั้นแรก เราจะสร้าง "คู่คีย์" สำหรับใช้ในการยืนยันตัวตนบนคอมพิวเตอร์ของคุณเอง WinSCP มีเครื่องมือสำหรับสร้างคีย์ที่ชื่อว่า "PuTTYgen" มาให้ด้วย

  1. จากหน้าจอเข้าสู่ระบบของ WinSCP ที่ด้านล่าง ให้เลือก "เครื่องมือ" (Tools) -> "เปิด PuTTYgen" (Run PuTTYgen)
  2. เมื่อ PuTTYgen เปิดขึ้นมา ให้ตรวจสอบว่า "ประเภทของคีย์ที่จะสร้าง" (Type of key to generate) ที่ด้านล่างของหน้าต่างเป็น "RSA" แล้วคลิกปุ่ม "สร้าง" (Generate)
  3. เมื่อมีข้อความปรากฏว่า "กรุณาสร้างความสุ่มโดยการเลื่อนเมาส์ไปมาบนพื้นที่ว่างในหน้าต่างนี้" ให้คุณเลื่อนเคอร์เซอร์เมาส์ไปมาแบบสุ่ม ซึ่งจะช่วยสร้างคีย์ที่ไม่ซ้ำใครและคาดเดาไม่ได้
  4. เมื่อแถบความคืบหน้าเต็ม การสร้างคีย์ก็เสร็จสมบูรณ์

🔑 การตั้งค่าและบันทึกข้อมูลคีย์

เมื่อสร้างคีย์เสร็จแล้ว จะต้องทำการตั้งค่าบางอย่าง

  1. คัดลอก Public Key: ข้อความในกล่องข้อความด้านบนที่เขียนว่า "Public key for pasting into OpenSSH authorized_keys file" (ขึ้นต้นด้วย `ssh-rsa AAAA...`) คือ Public Key ของคุณ ซึ่งเราจะนำไปตั้งค่าบนเซิร์ฟเวอร์ในภายหลัง ดังนั้น ให้คัดลอกข้อความทั้งหมดไปวางไว้ในโปรแกรม Text Editor ก่อน
  2. วลีรหัสผ่านของคีย์ (Key passphrase): ป้อนรหัสผ่านในช่อง "Key passphrase" และ "Confirm passphrase" นี่คือรหัสผ่านสำหรับใช้ Private Key ของคุณ ซึ่งมีความสำคัญอย่างยิ่ง เพราะแม้ว่าจะมีคนเข้ามาใช้งานคอมพิวเตอร์ของคุณโดยไม่ได้รับอนุญาต เขาก็จะไม่สามารถล็อกอินเข้าเซิร์ฟเวอร์ได้หากไม่มีวลีรหัสผ่านนี้ ดังนั้นต้องตั้งค่าทุกครั้ง
  3. บันทึก Private Key: คลิกปุ่ม "Save private key" จะมีคำเตือนปรากฏขึ้น ให้เลือก "ใช่" (Yes) เพื่อดำเนินการต่อ ตั้งชื่อไฟล์ให้จำง่าย เช่น "my-private-key" แล้วบันทึกไว้ในที่ปลอดภัยบนคอมพิวเตอร์ของคุณ ห้ามให้ไฟล์ `.ppk` นี้กับใครโดยเด็ดขาด
  4. (ทางเลือก) บันทึก Public Key: คุณสามารถบันทึก Public Key เป็นไฟล์ได้จากปุ่ม "Save public key" แต่ในครั้งนี้เราจะใช้ข้อความที่เราคัดลอกไว้ก่อนหน้านี้

ตอนนี้ บนคอมพิวเตอร์ของคุณควรจะมี "Private Key (ไฟล์ .ppk)" และในบันทึกของคุณควรจะมี "Public Key (ข้อความที่ขึ้นต้นด้วย ssh-rsa)"


ขั้นตอนที่ 2: การติดตั้ง Public Key บนเซิร์ฟเวอร์

ต่อไป เราจะติดตั้ง Public Key ที่สร้างไว้เมื่อครู่บนเซิร์ฟเวอร์ นี่เป็นการบอกเซิร์ฟเวอร์ว่า "อนุญาตให้เข้าถึงได้สำหรับผู้ที่มี Private Key ที่สอดคล้องกับ Public Key นี้"

ขั้นแรก ให้ล็อกอินเข้าเซิร์ฟเวอร์ด้วยรหัสผ่านเพียงครั้งเดียว (หากเซิร์ฟเวอร์ของคุณปิดการยืนยันตัวตนด้วยรหัสผ่าน คุณจะต้องขอให้ผู้ดูแลเซิร์ฟเวอร์ติดตั้ง Public Key ให้)

เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ด้วย WinSCP แล้ว ให้เปิดเทอร์มินัล (หน้าจอสีดำ) โดยไปที่เมนูด้านบน "คำสั่ง" (Commands) -> "เปิดเทอร์มินัล" (Open Terminal) หรือกด `Ctrl+T` จากนั้นให้รันคำสั่งต่อไปนี้ทีละคำสั่งตามลำดับ

1. สร้างไดเรกทอรีการตั้งค่า SSH และกำหนดสิทธิ์

สร้างไดเรกทอรี (โฟลเดอร์) เฉพาะ `~/.ssh` สำหรับวาง Public Key และตั้งค่าการอนุญาต (Permission) ให้เฉพาะเจ้าของเท่านั้นที่สามารถอ่าน เขียน และเรียกใช้งานได้ ซึ่งเป็นขั้นตอนที่สำคัญมากในด้านความปลอดภัย

mkdir -p ~/.ssh && chmod 700 ~/.ssh

2. เขียน Public Key ลงในไฟล์ authorized_keys

ต่อไป ให้เพิ่ม Public Key ลงในไฟล์ที่ชื่อว่า `authorized_keys` ผู้ใช้ที่มี Public Key ที่ระบุไว้ในไฟล์นี้จะได้รับอนุญาตให้เข้าถึงได้ ให้แทนที่ส่วน `"วาง Public Key ของคุณที่นี่"` ในคำสั่งด้านล่างด้วย Public Key ของคุณเอง (ข้อความยาวๆ ที่ขึ้นต้นด้วย `ssh-rsa AAAA...`) ที่คัดลอกมาจาก PuTTYgen ก่อนที่จะรันคำสั่ง

echo "วาง Public Key ของคุณที่นี่" >> ~/.ssh/authorized_keys

3. กำหนดสิทธิ์ไฟล์ authorized_keys

สุดท้าย ให้ตั้งค่าการอนุญาตของไฟล์ `authorized_keys` ที่สร้างขึ้น ให้เฉพาะเจ้าของเท่านั้นที่สามารถอ่านและเขียนได้ ซึ่งนี่ก็เป็นการตั้งค่าที่จำเป็นด้านความปลอดภัยเช่นกัน

chmod 600 ~/.ssh/authorized_keys

การตั้งค่าฝั่งเซิร์ฟเวอร์เสร็จสิ้นแล้ว! คุณสามารถปิดเทอร์มินัลได้เลย


ขั้นตอนที่ 3: ตั้งค่า Private Key ใน WinSCP และเชื่อมต่อ!

มาถึงขั้นตอนสุดท้ายแล้ว เราจะบอก WinSCP ว่า "ให้ใช้ Private Key นี้ในการเชื่อมต่อ"

  1. กลับไปที่หน้าจอเข้าสู่ระบบของ WinSCP เลือกไซต์ที่ต้องการตั้งค่าแล้วคลิกปุ่ม "แก้ไข" (Edit)
  2. ปล่อยให้ช่องรหัสผ่านว่างไว้
  3. คลิกปุ่ม "ตั้งค่าขั้นสูง" (Advanced...) หน้าต่างการตั้งค่าขั้นสูงจะเปิดขึ้นมา
  4. จากเมนูทางด้านซ้าย ให้เลือก "SSH" -> "การยืนยันตัวตน" (Authentication)
  5. ในส่วน "พารามิเตอร์การยืนยันตัวตน" (Authentication parameters) ให้คลิกปุ่ม "..." ที่อยู่ทางด้านขวาของช่อง "ไฟล์ Private Key" (Private key file)
  6. หน้าต่างเลือกไฟล์จะเปิดขึ้นมา ให้เลือกไฟล์ Private Key (ไฟล์ .ppk) ของคุณที่บันทึกไว้ในขั้นตอนที่ 1
  7. คลิกปุ่ม "OK" เพื่อปิดหน้าต่างการตั้งค่าขั้นสูง แล้วกลับมาที่หน้าจอเข้าสู่ระบบ จากนั้นคลิก "บันทึก" (Save) เพื่ออัปเดตการตั้งค่า

ตอนนี้ทุกอย่างพร้อมแล้ว! ลองคลิกปุ่ม "เข้าสู่ระบบ" (Login) ดู

จากนั้น แทนที่จะเป็นการป้อนรหัสผ่าน จะมีหน้าต่างปรากฏขึ้นมาถามว่า "ป้อนวลีรหัสผ่านสำหรับคีย์" (Enter passphrase for key) ให้คุณป้อนวลีรหัสผ่านที่คุณตั้งไว้ในขั้นตอนที่ 1

หากรายการไฟล์ของเซิร์ฟเวอร์ปรากฏขึ้นมาอย่างถูกต้อง แสดงว่าการเชื่อมต่อ SFTP ด้วย Public Key Authentication สำเร็จแล้ว! 🎉


ตัวอย่างการใช้งาน: ข้อดีของ Public Key Authentication

  • เพิ่มความปลอดภัย: มีความแข็งแกร่งอย่างมากต่อการโจมตีแบบ Brute-force attack เนื่องจากไม่สามารถล็อกอินได้หากไม่มี Private Key จึงปลอดภัยกว่าการยืนยันตัวตนด้วยรหัสผ่านเพียงอย่างเดียวอย่างมาก
  • การจัดการหลายเซิร์ฟเวอร์: หากลงทะเบียน Public Key เดียวกันไว้ในหลายเซิร์ฟเวอร์ คุณจะสามารถล็อกอินเข้าสู่เซิร์ฟเวอร์จำนวนมากได้ด้วย Private Key (และวลีรหัสผ่าน) เพียงชุดเดียว ทำให้การจัดการง่ายขึ้น
  • การทำงานร่วมกับระบบอัตโนมัติ: เมื่อใช้ร่วมกับสคริปต์ต่างๆ คุณไม่จำเป็นต้องเขียนรหัสผ่านลงไปโดยตรง ทำให้สามารถสร้างกระบวนการอัตโนมัติที่ปลอดภัยยิ่งขึ้น

ข้อควรระวัง ⚠️

  • การจัดการ Private Key อย่างเข้มงวด: ไฟล์ Private Key (.ppk) เปรียบเสมือนบัตรอนุญาตเข้าถึงของคุณโดยตรง ห้ามแสดง, ให้, หรืออัปโหลดไปยังพื้นที่สาธารณะ (เช่น GitHub) โดยเด็ดขาด การจัดเก็บใน USB drive ก็เป็นวิธีที่ดี
  • ความสำคัญของวลีรหัสผ่าน: หากไม่ได้ตั้งค่าวลีรหัสผ่าน ในกรณีที่ไฟล์ Private Key ของคุณรั่วไหล บุคคลที่สามจะสามารถล็อกอินเข้าเซิร์ฟเวอร์ได้โดยไม่ต้องใช้รหัสผ่าน ดังนั้นควรตั้งวลีรหัสผ่านที่ซับซ้อนเสมอ
  • การตั้งค่า SSH ฝั่งเซิร์ฟเวอร์: ขั้นตอนในบทความนี้อยู่บนสมมติฐานว่าเซิร์ฟเวอร์อนุญาตการเชื่อมต่อ SSH และ Public Key Authentication หากไม่สามารถเชื่อมต่อได้ ให้ตรวจสอบการตั้งค่าไฟล์ `sshd_config` ของเซิร์ฟเวอร์ หรือติดต่อฝ่ายสนับสนุนของบริการโฮสติ้งของคุณ

สรุป: มาเป็นผู้เชี่ยวชาญด้านการถ่ายโอนไฟล์อย่างปลอดภัยกันเถอะ!

ในครั้งนี้ เราได้อธิบายอย่างละเอียดตั้งแต่การเชื่อมต่อ SFTP พื้นฐานด้วย WinSCP ไปจนถึงการตั้งค่า Public Key Authentication ที่ปลอดภัยยิ่งขึ้น ในตอนแรกอาจจะรู้สึกยากเล็กน้อย แต่เมื่อตั้งค่าเสร็จแล้ว การจัดการไฟล์ของคุณในครั้งต่อไปจะปลอดภัยและสะดวกสบายอย่างมาก

ในฐานะ Web Creator การปกป้องข้อมูลสำคัญของลูกค้าถือเป็นความรับผิดชอบที่สำคัญอย่างยิ่ง ขอให้คุณใช้โอกาสนี้ในการเรียนรู้ Public Key Authentication และนำไปใช้เพื่อยกระดับมาตรการความปลอดภัยของคุณไปอีกขั้น