วิธีเปิดใช้งานการเข้าสู่ระบบ SSH ระดับ Root บน Linux ด้วยคีย์ SSH

เปิดใช้งานการเข้าสู่ระบบ SSH ด้วยสิทธิ์ root โดยใช้คีย์สาธารณะโดยการเพิ่มคีย์นั้นลงในไฟล์ `.sshd.conf` ของ root authorized_keysตั้งค่า `sshd_config` PermitRootLogin prohibit-passwordตรวจสอบความถูกต้องของการกำหนดค่า OpenSSH และโหลดบริการใหม่ วิธีนี้จะช่วยให้ root สามารถเข้าสู่ระบบด้วยคีย์ได้ ในขณะที่บล็อกการตรวจสอบสิทธิ์ด้วยรหัสผ่านและการโต้ตอบผ่านแป้นพิมพ์ ดูคู่มือ `sshd_config` ของ OpenSSH สำหรับคำจำกัดความของตัวเลือกต่างๆ

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

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

ก่อนที่คุณจะแก้ไขเซิร์ฟเวอร์ SSH

  • เชื่อมต่อด้วยบัญชีที่สามารถเรียกใช้งานได้sudoและตรวจสอบว่า OpenSSH Server กำลังทำงานอยู่
  • เตรียมคู่คีย์ SSH ของไคลเอ็นต์ให้พร้อม คุณจะต้องคัดลอกคีย์สาธารณะ (โดยปกติไฟล์จะมีนามสกุล .public key .pub) ห้ามแชร์คีย์ส่วนตัวเด็ดขาด

อย่าตั้งรหัสผ่าน root เพียงเพื่อใช้ SSH แบบใช้คีย์เท่านั้น การล็อกรหัสผ่านและการเข้าถึงด้วยคีย์สาธารณะเป็นการควบคุมที่แยกจากกัน แม้ว่านโยบายบัญชีผู้ใช้ของระบบปฏิบัติการอาจส่งผลต่อการเข้าสู่ระบบก็ตามคู่มือการจัดการผู้ใช้ของ Ubuntuอธิบายว่าการล็อกรหัสผ่านเพียงอย่างเดียวไม่ได้ปิดใช้งานการเข้าถึง SSH ด้วยคีย์ที่มีอยู่

เปิดใช้งานการเข้าสู่ระบบ SSH ระดับรูทโดยใช้คีย์

1. เข้าสู่ระบบในฐานะผู้ดูแลระบบตามปกติของคุณ

จากเทอร์มินัลบนเครื่องไคลเอ็นต์ของคุณ ให้เชื่อมต่อด้วยบัญชีที่มีสิทธิ์ sudo อยู่แล้ว:

ssh admin@server.example.com

แทนที่ค่าตัวอย่าง ตรวจสอบลายนิ้วมือของคีย์โฮสต์ใหม่ผ่านช่องทางที่เชื่อถือได้ก่อนที่จะยอมรับ

2. เพิ่มคีย์สาธารณะของคุณลงในบัญชี root

บนเซิร์ฟเวอร์ ให้สร้างไดเร็กทอรี SSH ของผู้ใช้ root โดยจำกัดสิทธิ์การเข้าถึง จากนั้นแก้ไขรายการคีย์ที่ได้รับอนุญาต:

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

วางคีย์สาธารณะทั้งหมดลงในบรรทัดเดียวแล้วบันทึก ห้ามวางคีย์ส่วนตัว และเก็บรักษาข้อมูลที่มีอยู่ทั้งหมด จากนั้นจำกัดความเป็นเจ้าของและสิทธิ์การเข้าถึง:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
หลังจากสร้างไดเร็กทอรี SSH ของรูทแล้ว โปรแกรมแก้ไขเทอร์มินัลจะเปิดไฟล์ authorized_keys ของรูทขึ้นมา
เพิ่มคีย์สาธารณะฉบับเต็มเป็นบรรทัดเดียวในไฟล์ authorized_keys ของ root; คีย์แบบย่อที่แสดงอยู่นี้เป็นเพียงตัวแทนเพื่อการแสดงผลเท่านั้น

3. ตั้งค่านโยบายการเข้าสู่ระบบสำหรับผู้ใช้ระดับ root

เปิดการตั้งค่าเซิร์ฟเวอร์ด้วยโปรแกรมแก้ไขข้อความ เช่น:

sudoedit /etc/ssh/sshd_config

ค้นหาPermitRootLoginคำสั่งที่ใช้งานอยู่และเปลี่ยนเป็น:

PermitRootLogin prohibit-password

วิธีนี้ปลอดภัยกว่าPermitRootLogin yesซึ่งอาจอนุญาตให้ใช้รหัสผ่าน root ได้ อย่าเพิ่มคำสั่งซ้ำซ้อน: OpenSSH จะใช้ค่าแรกที่ได้รับ และระบบปฏิบัติการบางรุ่นอาจโหลดIncludeไฟล์ แก้ไขการตั้งค่าที่ใช้งานอยู่ และปล่อยตัวเลือกการตรวจสอบสิทธิ์ที่ไม่เกี่ยวข้องไว้เหมือนเดิม

การตั้งค่าเซิร์ฟเวอร์ OpenSSH ที่แสดงว่า PermitRootLogin ถูกตั้งค่าเป็น prohibit-password
บรรทัดที่ไฮไลต์ไว้ควบคุมสิทธิ์ระดับรูท ส่วนตัวเลือกการตรวจสอบสิทธิ์อื่นๆ ที่แสดงอยู่นั้นเป็นการตั้งค่าแยกต่างหาก และควรตรงกับนโยบายของคุณ

4. ตรวจสอบความถูกต้องของการตั้งค่าก่อนนำไปใช้งาน

ตรวจสอบข้อผิดพลาดทางไวยากรณ์ก่อน:

sudo sshd -t

ไม่มีข้อความแสดงผล หมายความว่าการตรวจสอบไวยากรณ์ผ่านแล้ว แก้ไขข้อผิดพลาดใดๆ ที่รายงานก่อนโหลดใหม่ ตรวจสอบค่าที่ใช้งานได้จริงด้วย:

sudo sshd -T | grep permitrootlogin

ตรวจสอบว่าผลลัพธ์แสดงข้อความดังกล่าวหรือpermitrootlogin prohibit-passwordไม่ หากไม่แสดง ให้ตรวจสอบไฟล์ที่รวมอยู่และMatchบล็อก ที่เกี่ยวข้อง คู่มือ sshdระบุ-tว่าเป็นการตรวจสอบไวยากรณ์และ-Tเป็นรายงานการกำหนดค่าที่มีผลบังคับใช้

เทอร์มินัลกำลังตรวจสอบความถูกต้องของการกำหนดค่า sshd และแสดงค่า PermitRootLogin ที่มีผลใช้งาน
เรียกใช้คำสั่ง sshd -t ก่อนที่จะบันทึกการเปลี่ยนแปลง จากนั้นตรวจสอบการตั้งค่า root-login ที่มีผล

5. รีโหลดบริการ SSH

ใช้ชื่อบริการของระบบปฏิบัติการที่คุณใช้ โดยทั่วไป Ubuntu และ Debian จะใช้ชื่อดังนี้:

sudo systemctl reload ssh.service

Fedora, RHEL และระบบปฏิบัติการอื่นๆ อีกมากมายมักใช้:

sudo systemctl reload sshd.service

หากไม่รองรับการโหลดซ้ำ ให้ใช้systemctl restartชื่อบริการที่ตรงกันและเปิดเซสชันเดิมไว้คู่มือ OpenSSH ของ Ubuntu ยังแนะนำให้เรียกใช้คำสั่งนี้sshd -tก่อนรีสตาร์ท ด้วย

เทอร์มินัล Linux ที่กำลังโหลดบริการ OpenSSH ใหม่บน Ubuntu หรือ Debian
หลังจากที่การตั้งค่าผ่านการตรวจสอบไวยากรณ์แล้ว ให้ทำการโหลด SSH daemon ใหม่ โดยชื่อบริการอาจแตกต่างกันไปตามระบบปฏิบัติการ

6. ทดสอบการเข้าถึงระดับรูทจากเทอร์มินัลที่สอง

เปิดเทอร์มินัลแยกต่างหากบนเครื่องไคลเอ็นต์ แล้วระบุคีย์ส่วนตัวที่ตรงกับคีย์สาธารณะที่คุณติดตั้งไว้:

ssh -i ~/.ssh/id_ed25519 root@server.example.com

แทนที่พาธคีย์และชื่อโฮสต์ ตรวจสอบข้อความแจ้งให้ป้อนคีย์โฮสต์ และยืนยันว่าเซสชันเปิดขึ้นในฐานะผู้ใช้ root หากการทดสอบล้มเหลว ให้แก้ไขปัญหาจากเซสชันเดิมและเปิดเซสชันนั้นไว้จนกว่าจะสามารถเข้าถึงได้อีกครั้ง

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

แก้ไขปัญหาการเข้าสู่ระบบ root ที่ถูกปฏิเสธ

สำหรับPermission denied (publickey)ขั้นตอนนี้ โปรดตรวจสอบให้แน่ใจว่ามีคีย์สาธารณะครบถ้วน/root/.ssh/authorized_keysและไคลเอ็นต์ใช้คีย์ส่วนตัวที่ตรงกัน ตรวจสอบความเป็นเจ้าของและสิทธิ์การเข้าถึงอีกครั้ง:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

PermitRootLoginตรวจสอบ ค่า ที่มีผลบังคับใช้ AllowUsers/ DenyUsersกฎ บันทึกเซิร์ฟเวอร์ และเชลล์ล็อกอินของ root ด้วย หลีกเลี่ยงการเปลี่ยนการตั้งค่า yesเป็นทางลัด เพราะอาจทำให้วิธีการตรวจสอบสิทธิ์ที่ root อนุญาตขยายวงกว้างขึ้นได้

โปรแกรมเทอร์มินัล Linux สำหรับแก้ไขความเป็นเจ้าของและสิทธิ์การเข้าถึงที่จำกัดของไฟล์คีย์ SSH ของ root
ไดเร็กทอรี SSH ของ root ควรเป็นของ root โดยมีโหมด 700 สำหรับไดเร็กทอรี และ 600 สำหรับ authorized_keys

ปิดใช้งานการเข้าสู่ระบบ SSH ในโหมด root เมื่อคุณไม่ต้องการใช้งานอีกต่อไป

หากต้องการปิดการเข้าถึง SSH โดยตรงในระดับ root ให้เปลี่ยนคำสั่ง active เป็น:

PermitRootLogin no

เรียกใช้sudo sshd -tและโหลดบริการที่ถูกต้องใหม่ การดำเนินการนี้จะบล็อกการเข้าถึง SSH โดยตรงด้วยสิทธิ์ root ในขณะที่ยังคงอนุญาตให้บัญชีผู้ดูแลระบบใช้งานได้ การล็อกด้วยรหัสผ่านเพียงอย่างเดียวอาจไม่สามารถปิดใช้งานการเข้าสู่ระบบด้วยคีย์สาธารณะของ root ได้

ตั้งค่าการกำหนดค่าเซิร์ฟเวอร์ OpenSSH เป็น PermitRootLogin no ตามด้วยคำสั่งตรวจสอบความถูกต้องและรีโหลดบริการ
ตั้งค่า PermitRootLogin เป็น no ตรวจสอบความถูกต้อง และโหลดหน้าเว็บใหม่ ตัวเลือกการตรวจสอบสิทธิ์อื่นๆ ที่แสดงนั้นแยกต่างหากและไม่จำเป็นสำหรับการเปลี่ยนแปลงเฉพาะผู้ใช้ root นี้

สำหรับรายละเอียดเพิ่มเติม โปรดศึกษาคู่มือการตั้งค่า OpenSSHและเอกสารประกอบ SSH ของ Ubuntu Server

ฝากความเห็น

วิธีการค้นหาและลบไฟล์ซ้ำบน Linux ด้วย FSlint

วิธีการค้นหาและลบไฟล์ซ้ำบน Linux ด้วย FSlint

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

วิธีการติดตั้ง Latte Dock บน KDE Plasma 5

วิธีการติดตั้ง Latte Dock บน KDE Plasma 5

ติดตั้ง Latte Dock บนระบบ KDE Plasma 5 ที่รองรับ จัดเรียงแผงด้านข้าง และเปิดใช้งานการเริ่มต้นเมื่อเข้าสู่ระบบ ตรวจสอบความพร้อมใช้งานของแพ็กเกจและข้อจำกัดของ Plasma 6

วิธีใช้งาน Dropbox บน Linux: ติดตั้งและซิงค์ไฟล์ของคุณ

วิธีใช้งาน Dropbox บน Linux: ติดตั้งและซิงค์ไฟล์ของคุณ

ติดตั้ง Dropbox บน Linux จากแพ็กเกจอย่างเป็นทางการ ลงชื่อเข้าใช้ ซิงค์โฟลเดอร์ในเครื่อง จัดการการซิงค์แบบเลือก และตรวจสอบสถานะจากบรรทัดคำสั่ง

วิธีบันทึกเสียงพูดจากลำโพงบน Linux ด้วย Audacity

วิธีบันทึกเสียงพูดจากลำโพงบน Linux ด้วย Audacity

บันทึกเสียงเดสก์ท็อป Linux ใน Audacity โดยกำหนดเส้นทางสตรีมการบันทึกไปยังแหล่งสัญญาณมอนิเตอร์ของอุปกรณ์เอาต์พุตของคุณ ทำตามขั้นตอนของ PulseAudio และ PipeWire รวมถึงเคล็ดลับการส่งออกและวิธีแก้ไขปัญหาแทร็กเงียบ

วิธีการเปลี่ยนจาก Bash เป็น Zsh บน Linux

วิธีการเปลี่ยนจาก Bash เป็น Zsh บน Linux

ติดตั้ง Zsh บน Ubuntu, Fedora, Arch หรือ openSUSE ทดสอบก่อนเปลี่ยนเชลล์ล็อกอิน ย้ายการตั้งค่า Bash อย่างปลอดภัย และเพิ่ม Oh My Zsh ได้ตามต้องการ

วิธีการติดตั้ง Inkscape บน Linux: Ubuntu, Fedora, Arch และอื่นๆ

วิธีการติดตั้ง Inkscape บน Linux: Ubuntu, Fedora, Arch และอื่นๆ

ติดตั้ง Inkscape จากที่เก็บซอฟต์แวร์ของระบบปฏิบัติการ Linux ของคุณ, Ubuntu stable PPA, Snap หรือ Flathub โดยใช้คำสั่งและหมายเหตุปัจจุบันสำหรับการเลือกแหล่งที่มาของแพ็กเกจ

วิธีฟังวิทยุบน Linux ด้วย Shortwave ซึ่งเป็นรุ่นต่อจาก Gradio

วิธีฟังวิทยุบน Linux ด้วย Shortwave ซึ่งเป็นรุ่นต่อจาก Gradio

Gradio ถูกเก็บถาวรไปแล้ว แต่ Shortwave ซึ่งเป็นรุ่นต่อมายังคงให้บริการวิทยุออนไลน์บน Linux ติดตั้งด้วย Flatpak ค้นหาสถานี บันทึกสถานีโปรด และเริ่มสตรีมได้เลย

วิธีการติดตั้งธีม Paper GTK บน Linux

วิธีการติดตั้งธีม Paper GTK บน Linux

ติดตั้งธีม Paper GTK จากแหล่งเก็บซอฟต์แวร์ Linux ที่รองรับ เปิดใช้งานสำหรับแอป GTK ใน GNOME Tweaks และดูว่าธีมแบบเก่าสามารถเปลี่ยนแปลงอะไรได้บ้างและเปลี่ยนแปลงอะไรไม่ได้บ้าง

วิธีการค้นหาไวรัสบน Linux จากบรรทัดคำสั่ง

วิธีการค้นหาไวรัสบน Linux จากบรรทัดคำสั่ง

เรียนรู้วิธีการติดตั้ง ClamAV อัปเดตฐานข้อมูลไวรัส สแกนไฟล์และโฟลเดอร์ Linux แบบวนซ้ำ และตรวจสอบผลการตรวจพบโดยไม่ลบไฟล์โดยอัตโนมัติ

วิธีการติดตั้งและตั้งค่า Plex บน OpenMediaVault ด้วย Compose

วิธีการติดตั้งและตั้งค่า Plex บน OpenMediaVault ด้วย Compose

ปลั๊กอิน OpenMediaVault Plex รุ่นเก่าถูกเก็บถาวรแล้ว ติดตั้ง Plex บน OMV 8 โดยใช้ OMV-Extras, ปลั๊กอิน Compose, พื้นที่จัดเก็บข้อมูลถาวร และคอนเทนเนอร์อย่างเป็นทางการของ Plex