เซิร์ฟเวอร์เฉพาะ: การยืนยันตัวตนสองขั้นตอน 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:
อย่าลืมคัดลอกโค้ดสำรองไว้ด้วย โค้ดเหล่านี้ใช้ได้ครั้งละหนึ่งโค้ดในกรณีที่คุณทำแอปหาย
ตอนนี้แอปจะแสดงรหัสที่คุณต้องใช้ล็อกอินในภายหลัง ตัวอย่างจะเป็นแบบนี้:
ระบบจะถามคำถามต่อไปนี้:
- คุณต้องการบันทึกการตั้งค่า Google Authenticator ไหม?
- คุณต้องการให้ล็อกอินได้แค่ครั้งเดียวทุก 30 วินาทีไหม?
- ต้องการเพิ่มเวลาที่รหัสใช้งานได้ไหม?
- ต้องการจำกัดล็อกอินแค่ 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 ได้สำเร็จแล้ว หากมีคำถามหรืออยากได้ความช่วยเหลือเพิ่มเติม ติดต่อทีมซัพพอร์ตของเราได้เลย พร้อมให้บริการทุกวัน! 🙂