La การรับรองความถูกต้องด้วยสองปัจจัย (2FA) ไม่ใช่สิ่งพิเศษที่สามารถใช้บนโซเชียลมีเดียได้ หรือบนเว็บไซต์อื่น ๆ มาตรการรักษาความปลอดภัยนี้สามารถนำไปใช้ภายในระบบปฏิบัติการได้เช่นกัน
นั่นคือเหตุผล วันนี้เราจะมาดูวิธีใช้การรับรองความถูกต้องด้วยสองปัจจัยใน SSH ใน Ubuntu และอนุพันธ์โดยใช้ Google Authenticator ที่รู้จักกันดีซึ่งจะช่วยเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ OpenSSH ของคุณได้มาก
โดยปกติคุณเพียงแค่ป้อนรหัสผ่านหรือใช้คีย์ SSH เพื่อเข้าสู่ระบบของคุณจากระยะไกล
การรับรองความถูกต้องด้วยสองปัจจัย (2FA) จำเป็นต้องป้อนข้อมูลสองส่วนเพื่อเข้าสู่ระบบ
ดังนั้นคุณจะต้องป้อนรหัสผ่านแบบใช้ครั้งเดียวตามเวลาเพื่อเข้าสู่ระบบเซิร์ฟเวอร์ SSH ของคุณ
รหัสผ่านแบบใช้ครั้งเดียวนี้คำนวณโดยใช้อัลกอริทึม TOTP ซึ่งเป็นมาตรฐาน IETF
การติดตั้งและกำหนดค่า Google Authenticator ใน Ubuntu และอนุพันธ์
ขั้นตอนแรกที่เราจะดำเนินการคือการติดตั้ง Google Authenticator ในระบบของเราดังนั้นเราจะเปิดเทอร์มินัลในระบบ (สามารถทำได้โดยใช้คีย์ผสม“ Ctrl + Alt + T) และในนั้นเราจะพิมพ์คำสั่งต่อไปนี้:
sudo apt install libpam-google-authenticator
การติดตั้งเสร็จสิ้น เราจะเรียกใช้แอปพลิเคชันที่ติดตั้งใหม่ด้วยคำสั่งต่อไปนี้:
google-authenticator
เมื่อเรียกใช้คำสั่งนี้สิ่งที่เราจะทำคือกำหนดรหัสลับและสิ่งนี้จะถามเราว่าเราต้องการใช้โทเค็นตามเวลาหรือไม่ซึ่งเราจะตอบว่าใช่
หลังจากนี้, พวกเขาจะเห็นรหัส QR ซึ่งสามารถสแกนโดยใช้แอป TOTP บนโทรศัพท์ของพวกเขา
ที่นี่ เราขอแนะนำให้ใช้แอปพลิเคชัน Google Authenticator บนโทรศัพท์มือถือของคุณil เพื่อให้คุณสามารถติดตั้งแอปพลิเคชันผ่าน Google Play หรือ Apple App Store บนโทรศัพท์มือถือของคุณ
มีแอปพลิเคชันบนโทรศัพท์ของคุณแล้วคุณต้องสแกนรหัส QR ด้วย โปรดทราบว่าคุณต้องขยายหน้าต่างเทอร์มินัลเพื่อสแกนโค้ด QR ทั้งหมด
รหัส QR แทนรหัสลับซึ่งเป็นที่รู้จักในเซิร์ฟเวอร์ SSH และแอป Google Authenticator เท่านั้น
เมื่อสแกนโค้ด QR แล้วพวกเขาจะเห็นโทเค็นหกหลักที่ไม่ซ้ำกันในโทรศัพท์ โดยค่าเริ่มต้นโทเค็นนี้จะใช้เวลา 30 วินาทีและต้องเข้าสู่ระบบ Ubuntu ผ่าน SSH
ในเทอร์มินัลคุณจะเห็นรหัสลับเช่นเดียวกับรหัสยืนยันและรหัสเริ่มฉุกเฉิน
ซึ่งเราขอแนะนำให้คุณเก็บข้อมูลนี้ไว้ในที่ปลอดภัยเพื่อใช้ในภายหลัง จากคำถามอื่น ๆ ที่เราถูกถามเราจะตอบว่าใช่โดยพิมพ์ตัวอักษร y
การตั้งค่า SSH เพื่อใช้กับ Google Authenticator
นับจากข้างต้นแล้ว ตอนนี้เรากำลังจะทำการกำหนดค่าที่จำเป็นเพื่อให้สามารถใช้การเชื่อมต่อ SSH ในระบบของเรากับ Google Authenticator
ในเทอร์มินัล vเราจะพิมพ์คำสั่งต่อไปนี้
sudo nano /etc/ssh/sshd_config
ภายในไฟล์ เราจะมองหาบรรทัดต่อไปนี้และเราจะเปลี่ยนเป็น "ใช่" ดังนี้:
UsePAM yes ChallengeResponseAuthentication yes
เมื่อทำการเปลี่ยนแปลงแล้วให้บันทึกการเปลี่ยนแปลงที่ทำด้วย Ctrl + O และปิดไฟล์ด้วย Ctrl + X
ในเทอร์มินัลเดียวกันเราจะรีสตาร์ท SSH ด้วย:
sudo systemctl restart ssh
โดยค่าเริ่มต้นการรับรองความถูกต้องกำหนดให้พวกเขาป้อนรหัสผ่านผู้ใช้เพื่อเข้าสู่ระบบ
สำหรับอะไร มาแก้ไขไฟล์กฎ PAM สำหรับ SSH daemon
sudo nano /etc/pam.d/sshd
ที่จุดเริ่มต้นของไฟล์นี้คุณจะเห็นบรรทัดต่อไปนี้ซึ่งเปิดใช้งานการตรวจสอบรหัสผ่าน
ChallengeResponseAuthentication
ซึ่งเราต้องตั้งค่าเป็นใช่
หากต้องการเปิดใช้งานการพิสูจน์ตัวตนด้วยรหัสผ่านเพียงครั้งเดียวให้เพิ่มสองบรรทัดต่อไปนี้
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
บันทึกและปิดไฟล์
นับจากนี้เป็นต้นไปทุกครั้งที่เข้าสู่ระบบของคุณผ่านการเชื่อมต่อ SSH พวกเขาจะได้รับแจ้งให้ป้อนรหัสผ่านผู้ใช้และรหัสยืนยัน (รหัสผ่านแบบใช้ครั้งเดียวที่สร้างโดย Google Authenticator)
สวัสดีแบบฝึกหัดที่ค่อนข้างง่ายอย่างไรก็ตามเมื่อฉันทำตามขั้นตอนทั้งหมดแล้วฉันไม่สามารถป้อนด้วย ssh ได้อีกต่อไปมันทำให้ฉันมีข้อผิดพลาดรหัสผ่านที่ไม่ถูกต้องฉันไม่สามารถขอ 2FA ได้
ฉันมี Ubuntu Server 20.04