ข้ามไปยังเนื้อหาหลัก

เซิร์ฟเวอร์เฉพาะ: การยืนยันตัวตนสองขั้นตอน SSH

คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:

(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)

แนะนำ

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

การติดตั้ง

อันดับแรกคุณต้องติดตั้ง Google Authenticator บน Linux VPS ของคุณ รันคำสั่งนี้:

sudo apt install libpam-google-authenticator

จากนั้นระบบจะถามให้คุณพิมพ์ "Y" เพื่อยืนยันการติดตั้ง พิมพ์แล้วกด Enter จากนั้น Google Authenticator จะถูกติดตั้ง!

เริ่ม Google Authenticator โดยพิมพ์คำสั่ง 'google-authenticator' ตรวจสอบให้แน่ใจว่าขนาดหน้าต่างของคุณพอสำหรับแสดง QR Code ถ้าไม่พอให้กด "CTRL+C" แล้วพิมพ์คำสั่งใหม่อีกครั้ง

ระบบจะถามอีกครั้งว่าคุณต้องการดำเนินการต่อไหม ให้พิมพ์ "Y" เพื่อยอมรับ คุณจะเห็น QR Code เปิดแอป Authenticator บนสมาร์ทโฟนของคุณแล้วสแกน QR Code ตัวอย่างนี้เราใช้ Google Authenticator:

อย่าลืมคัดลอกโค้ดสำรองไว้ด้วย โค้ดเหล่านี้ใช้ได้ครั้งละหนึ่งโค้ดในกรณีที่คุณทำแอปหาย

ตอนนี้แอปจะแสดงรหัสที่คุณต้องใช้ล็อกอินในภายหลัง ตัวอย่างจะเป็นแบบนี้:

ระบบจะถามคำถามต่อไปนี้:

  1. คุณต้องการบันทึกการตั้งค่า Google Authenticator ไหม?
  2. คุณต้องการให้ล็อกอินได้แค่ครั้งเดียวทุก 30 วินาทีไหม?
  3. ต้องการเพิ่มเวลาที่รหัสใช้งานได้ไหม?
  4. ต้องการจำกัดล็อกอินแค่ 3 ครั้งทุก 30 วินาทีไหม? (เพื่อป้องกัน Brute Force)

เพื่อความปลอดภัย เราแนะนำให้ตอบ Yes ทุกข้อ

การตั้งค่า

ตอนนี้เราต้องปรับ Google Authenticator ให้ถูกใช้งานจริง ต้องแก้ไขสองส่วน

/etc/ssh/sshd_config

เปิดใช้งานโมดูลที่จำเป็นในไฟล์ /etc/ssh/sshd_config เปิดไฟล์นี้ด้วยคำสั่ง

sudo nano /etc/ssh/sshd_config

คุณจะเข้าสู่โปรแกรมแก้ไขข้อความ ใช้ปุ่มลูกศรเลื่อน เคลียร์ข้อความได้ตามต้องการ กด 'CTRL + X' แล้ว 'Y' และสุดท้ายกด 'Enter' เพื่อบันทึกไฟล์

ตรวจสอบให้แน่ใจว่าบรรทัด 'UsePAM' และ 'ChallengeResponseAuthentication' ตั้งค่าเป็น 'yes' แบบนี้:

บันทึกไฟล์ด้วย 'CTRL + X' แล้ว 'Y' และ 'Enter' จากนั้นรีสตาร์ท SSH ด้วยคำสั่งนี้:

sudo systemctl restart ssh

/etc/pam.d/sshd

ตอนนี้เพิ่ม Google Authenticator เข้าไปในขั้นตอนล็อกอินที่ไฟล์ /etc/pam.d/sshd เปิดไฟล์นี้ด้วยคำสั่ง sudo nano /etc/pam.d/sshd เลื่อนลงไปท้ายไฟล์แล้วเพิ่มบรรทัดนี้:

auth required pam_google_authenticator.so

บันทึกไฟล์ด้วย 'CTRL + X' แล้ว 'Y' และ 'Enter'

ทดสอบการเข้าถึง

ถึงเวลาล็อกอินครั้งแรกด้วย 2FA แล้ว หลังจากทำตามขั้นตอนข้างต้นเสร็จ ให้รีสตาร์ทการเชื่อมต่อ SSH ของคุณ

ใส่รหัสผ่านตามปกติ จากนั้นระบบจะถามรหัส ให้กรอกรหัส 2FA ล่าสุดจากแอป

เท่านี้ก็ล็อกอินสำเร็จ!

สรุป

ยินดีด้วย คุณตั้งค่า 2FA สำหรับการเข้าถึง SSH ได้สำเร็จแล้ว หากมีคำถามหรืออยากได้ความช่วยเหลือเพิ่มเติม ติดต่อทีมซัพพอร์ตของเราได้เลย พร้อมให้บริการทุกวัน! 🙂