0Pricing
Cyber Security Academy · บทเรียน

การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์

ปิดการยืนยันตัวตนด้วยรหัสผ่าน กำหนดค่าคู่คีย์ จำกัดการเข้าถึงด้วย AllowUsers และใช้ fail2ban

การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์ เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดความปลอดภัยของ SSH จึงสำคัญ

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

การสร้างคู่ key ของ SSH

การยืนยันตัวตนด้วย key แข็งแกร่งกว่าการใช้รหัสผ่าน สร้างคู่ key ดังนี้:

ssh-keygen -t ed25519 -C "your_email"
# Creates ~/.ssh/id_ed25519 (private) and id_ed25519.pub (public)
# Never share the private key

การติดตั้ง key สาธารณะ

คัดลอก key สาธารณะของคุณไปยังเซิร์ฟเวอร์:

ssh-copy-id user@server
# Or manually:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

การปิดการยืนยันตัวตนด้วยรหัสผ่าน

เมื่อการยืนยันตัวตนด้วย key ใช้งานได้แล้ว ให้ปิดการเข้าสู่ระบบด้วยรหัสผ่านเพื่อกำจัดความเสี่ยงจากการเดารหัสผ่าน:

# In /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshd

การเปลี่ยนพอร์ต SSH เริ่มต้น

การย้าย SSH ออกจากพอร์ต 22 จะช่วยลดเสียงรบกวนจากการสแกนอัตโนมัติ วิธีนี้คือ การรักษาความปลอดภัยด้วยความคลุมเครือ — ไม่ใช่การป้องกันที่แท้จริง แต่ช่วยลดบันทึกเหตุการณ์จำนวนมากได้ ควรปรับปรุงกฎไฟร์วอลล์ให้สอดคล้องกันเสมอ

# /etc/ssh/sshd_config
Port 2222
# Then update firewall:
ufw allow 2222/tcp
ufw delete allow 22/tcp

การจำกัดการเข้าถึง SSH ตามผู้ใช้/IP

จำกัดว่าผู้ใช้คนใดสามารถใช้ SSH และอนุญาตให้เชื่อมต่อจากที่ใดได้บ้าง:

# /etc/ssh/sshd_config
AllowUsers alice bob
AllowGroups sshusers
# Or restrict by source IP in /etc/hosts.allow:
sshd: 192.168.1.0/24

การหมดเวลาและการจำกัดการเข้าสู่ระบบ SSH

ลดพื้นที่เสี่ยงด้วยการจำกัดช่วงการใช้งานและจำนวนครั้งที่พยายาม:

# /etc/ssh/sshd_config
ClientAliveInterval 300    # disconnect idle sessions after 5 min
ClientAliveCountMax 2
MaxAuthTries 3             # max password attempts
LoginGraceTime 30          # seconds to authenticate

การใช้ fail2ban

fail2ban จะตรวจสอบไฟล์บันทึกและแบน IP ที่แสดงรูปแบบพฤติกรรมเป็นอันตราย เช่น พยายามเข้าสู่ระบบ SSH ไม่สำเร็จหลายครั้ง จากนั้นจะอัปเดตกฎไฟร์วอลล์แบบไดนามิกเพื่อบล็อกผู้โจมตี

apt install fail2ban
# /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 3
bantime = 3600

เอเจนต์ SSH และการส่งต่อ key

เอเจนต์ SSH จะเก็บ key ส่วนตัวที่ถอดรหัสแล้วไว้ในหน่วยความจำ เพื่อไม่ให้คุณต้องป้อนวลีรหัสผ่านซ้ำทุกครั้งที่เข้าสู่ระบบ การส่งต่อเอเจนต์ (ssh -A) จะส่งต่อ key ของคุณผ่านเครื่องตัวกลางหลายจุด — ควรใช้อย่างระมัดระวัง เพราะเซิร์ฟเวอร์ตัวกลางที่ถูกบุกรุกอาจขโมย key ของคุณจากซ็อกเก็ตเอเจนต์ได้

การยืนยันตัวตนสองปัจจัยสำหรับ SSH

เพิ่ม TOTP ให้กับ SSH ด้วยโมดูล Google Authenticator PAM เพื่อการป้องกันเพิ่มเติม แม้จะใช้การยืนยันตัวตนด้วย key ก็ตาม การเข้าสู่ระบบจะต้องมีทั้ง key AND OTP แบบใช้ตามเวลา

การตรวจสอบการกำหนดค่า SSH

ตรวจสอบการกำหนดค่า SSH ด้วย:

sshd -T | grep -E "passwordauth|permitroot|pubkeyauth|port"
# Check who is connected:
ss -tnp | grep :22
who

ตรวจสอบความเข้าใจ: การเสริมความปลอดภัย SSH

การตั้งค่าใดใน sshd_config ที่ควรกำหนดเป็น no เพื่อกำจัดการโจมตี SSH ด้วยการเดารหัสผ่าน

ทบทวนบทเรียน

การเสริมความปลอดภัย SSH: ใช้ key Ed25519 ปิดการยืนยันตัวตนด้วยรหัสผ่าน ปิดการเข้าสู่ระบบของ root เปลี่ยนจากพอร์ต 22 จำกัด AllowUsers กำหนดเวลาหมดอายุเมื่อไม่มีการใช้งาน และติดตั้ง fail2ban อย่าแชร์ key ส่วนตัว ใช้ sshd -T เพื่อตรวจสอบ การส่งต่อเอเจนต์สะดวก แต่มีความเสี่ยงเมื่อใช้กับโฮสต์ที่ไม่น่าเชื่อถือ

คำถามที่พบบ่อย

บทเรียน “การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์”

ปิดการยืนยันตัวตนด้วยรหัสผ่าน กำหนดค่าคู่คีย์ จำกัดการเข้าถึงด้วย AllowUsers และใช้ fail2ban คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สิทธิ์และความเป็นเจ้าของไฟล์
  2. การจัดการผู้ใช้และกลุ่ม
  3. การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์
  4. กฎไฟร์วอลล์ iptables และ UFW
← กลับไปที่ Cyber Security Academy