เป้าหมายและลำดับขั้นตอน
ผู้ดูแลระบบควรล็อกอินด้วยคีย์ผ่านบัญชีของตนเอง และใช้ sudo เมื่อจำเป็น เพราะวิธีนี้ช่วยบันทึกว่าใครทำอะไรและจำกัดการเดารหัสผ่าน ลำดับขั้นตอนมีความสำคัญ: ทำให้ช่องทางเข้าถึงใหม่ใช้งานได้ก่อน ทดสอบ แล้วจึงจำกัด root เป็นขั้นตอนสุดท้าย เตรียมทางเข้าคอนโซลของผู้ให้บริการไว้เผื่อเกิดปัญหา
สร้างบัญชีและติดตั้งคีย์
สร้างบัญชี เพิ่มคีย์สาธารณะของบัญชีนั้น และกำหนดสิทธิ์อย่างเข้มงวด เพราะ sshd จะไม่ใช้ไฟล์คีย์ที่ผู้อื่นเขียนแก้ไขได้ ห้ามคัดลอกคีย์ส่วนตัวไปยังเซิร์ฟเวอร์ บนระบบตระกูล Red Hat ให้ใช้กลุ่ม wheel แทน sudo
sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keysทดสอบจากหน้าต่างที่สอง
เปิดเซสชันปัจจุบันค้างไว้ แล้วทดสอบการล็อกอินใหม่จากเทอร์มินัลอีกหน้าต่างหนึ่ง การเป็นสมาชิกกลุ่มเพียงอย่างเดียวไม่ได้ยืนยันว่า sudo ใช้งานได้ เพราะกฎใน sudoers เป็นตัวกำหนด ให้ยืนยันด้วย sudo -l
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -vจำกัดการล็อกอิน root
PermitRootLogin prohibit-password อนุญาตให้ root ใช้คีย์เท่านั้น ส่วน no จะปิดกั้น root ผ่าน SSH ทั้งหมด บันทึกการเปลี่ยนแปลงในไฟล์แยกภายใต้ /etc/ssh/sshd_config.d. สำหรับตัวเลือกส่วนใหญ่ sshd จะใช้ค่าแรกที่พบ ดังนั้นไฟล์ที่อ่านก่อนอาจมีผลเหนือกว่า ด้วยเหตุนี้ ให้ตรวจค่าที่มีผลจริงด้วย sshd -T แทนการอ่านไฟล์เพียงอย่างเดียว ทดสอบการล็อกอินใหม่ก่อนปิดเซสชันเดิม
echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) 'การล็อกอินด้วยรหัสผ่านและสิ่งที่ควรหลีกเลี่ยง
ปิด PasswordAuthentication หลังจากทุกบัญชีที่คุณต้องใช้มีคีย์ที่ผ่านการทดสอบแล้วเท่านั้น หลีกเลี่ยงการใช้บัญชีเดียวร่วมกันหลายคน เพราะจะถอนสิทธิ์ของคนใดคนหนึ่งโดยไม่กระทบผู้อื่นไม่ได้ การอนุญาตให้ทั้งบัญชีใช้ sudo โดยไม่ต้องใส่รหัสผ่านยังหมายความว่า เพียงขโมยคีย์ได้ก็จะควบคุมระบบได้ทั้งหมด
บัญชีใน CH-J Server Manager
โมดูล Users จัดการบัญชี กลุ่ม คีย์ SSH และการเข้าถึง SSH ผ่านเซสชัน SSH ที่ทำงานอยู่ โมดูลจะไม่แก้ไข sudoers หรือกำหนด NOPASSWD และรายงานสถานะ sudo จริงจาก sudo -l ไม่สามารถลบบัญชี root ได้ และการอนุญาตให้ root ล็อกอินด้วยรหัสผ่านต้องยืนยันเพิ่มเติม โดยมี Key only เป็นตัวเลือกที่แนะนำ การเปลี่ยนแปลงการเข้าถึง SSH จะตรวจสอบด้วย sshd -T และการล็อกอิน SSH ใหม่ หากการตรวจสอบล้มเหลวหรือการเปลี่ยนแปลงจะทำให้คุณเข้าใช้งานไม่ได้ ระบบจะคืนค่าการกำหนดค่าเดิมโดยอัตโนมัติ หากไม่มี sudo โมดูลจะอ่านได้อย่างเดียว