Manage SSH Key: เพิ่มคีย์ root และคุมการล็อกอิน SSH

ใช้ Manage SSH Key บน TDC Enterprise เพิ่ม Public key ให้ root ทดสอบล็อกอินด้วยคีย์ แล้วปิดการล็อกอินด้วยรหัสผ่านอย่างปลอดภัย โดยไม่ต้องแก้ไฟล์ในเครื่อง

โดย ทีมงาน THAI DATA CLOUD อัปเดต อ่าน 11 นาที

แชร์FacebookXLINELinkedIn
Manage SSH Key — Manage SSH Key: เพิ่มคีย์ root และคุมการล็อกอิน SSH
Manage SSH Key: เพิ่มคีย์ root และคุมการล็อกอิน SSH

คำตอบสั้น ๆ: ใช้ Manage SSH Key บน TDC Enterprise เพิ่ม Public key ให้ root ทดสอบล็อกอินด้วยคีย์ แล้วปิดการล็อกอินด้วยรหัสผ่านอย่างปลอดภัย โดยไม่ต้องแก้ไฟล์ในเครื่อง

คู่มือนี้อธิบาย Manage SSH Key ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

Manage SSH Key คือปุ่มในหน้า Overview ของ Cloud Server บน TDC Enterprise ที่พาไปยังหน้า SSH access สำหรับเพิ่ม แก้ไข และลบ SSH Key ของผู้ใช้ root รวมถึงเปิดหรือปิดการล็อกอิน SSH ด้วยรหัสผ่าน โดยไม่ต้องแก้ไฟล์ authorized_keys หรือ sshd_config ด้วยมือ ค่าที่แสดงในหน้านี้อ่านจากตัวเครื่องจริงทุกครั้งที่เปิด คุณจึงเห็นสถานะปัจจุบันเสมอ

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

ลำดับการใช้ Manage SSH Key ตั้งแต่สร้างคีย์ เพิ่ม Public key ทดสอบ ssh จนถึงปิด Password login
ทดสอบคีย์ให้ผ่านก่อน แล้วจึงปิดการล็อกอินด้วยรหัสผ่าน

สิ่งที่ต้องเตรียม

  • Linux Server ที่สร้างในโซน Zenith (ที่อยู่ของหน้าเซิร์ฟเวอร์จะมี /zone/TH-Zenith/) สถานะ Running และติดตั้ง openssh-server ไว้
  • บัญชีเจ้าของ (Owner) เพราะปุ่ม Manage SSH Key และลิงก์ Reset Password แสดงเฉพาะเจ้าของบัญชี ผู้ใช้อื่นจะเห็นเป็นเครื่องหมาย —
  • OpenSSH client บนเครื่องของคุณ ซึ่งมีมาใน macOS, Linux และ Windows 10/11 (ใช้ผ่าน PowerShell)
  • ทางเข้าสำรอง เช่น หน้าต่าง Terminal ที่ยังล็อกอินค้างไว้ หรือ Console ผ่าน Web UI

ถ้าในกล่อง Cloud Instance Information ไม่มีแถว SSH Key แปลว่าเครื่องอยู่ในโซนที่ยังไม่มีเมนูนี้ ให้ตั้งค่าคีย์ในระบบปฏิบัติการตาม คู่มือตั้งค่า SSH Key บน Linux แทน

ขั้นตอนที่ 1: สร้างคู่คีย์บนเครื่องของคุณ

SSH Key มีสองส่วน คือ Private key ที่ต้องเก็บไว้ในเครื่องคุณเท่านั้น และ Public key ที่นำไปใส่ในเซิร์ฟเวอร์ เปิด Terminal (หรือ PowerShell บน Windows) แล้วสร้างคีย์ชนิด ED25519 ซึ่งสั้นและปลอดภัย

ssh-keygen -t ed25519 -C "[email protected]"

กด Enter เพื่อเก็บไฟล์ไว้ที่ตำแหน่งเริ่มต้น แล้วตั้ง passphrase เพื่อป้องกันกรณีไฟล์คีย์หลุด ข้อความหลัง -C จะกลายเป็นป้ายชื่อ (label) ของคีย์ในพอร์ทัล จากนั้นแสดง Public key เพื่อคัดลอก

cat ~/.ssh/id_ed25519.pub

บน Windows PowerShell ใช้ Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub ผลลัพธ์เป็นบรรทัดเดียวที่ขึ้นต้นด้วย ssh-ed25519 ตัวเลือกทั้งหมดของคำสั่งดูได้ที่ คู่มือ ssh-keygen ของ OpenSSH และสำหรับ Windows ดู OpenSSH key management ของ Microsoft

ผลคำสั่ง ssh-keygen สร้างคีย์ ED25519 และคำสั่ง cat แสดง Public key บรรทัดเดียวสำหรับวางในพอร์ทัล
คัดลอกเฉพาะบรรทัดจากไฟล์ .pub ไปวาง ห้ามส่งไฟล์ Private key ให้ใคร

ขั้นตอนที่ 2: เปิดหน้า SSH access ด้วยปุ่ม Manage SSH Key

ใน TDC Enterprise ไปที่ Cloud Instance > Linux Server คลิกชื่อเซิร์ฟเวอร์ แล้วอยู่ที่แท็บ Overview ในกล่อง Cloud Instance Information หาแถว SSH Key แล้วคลิก Manage SSH Key

หน้า SSH access จะแสดงการ์ดสรุป 4 ใบ ได้แก่ SSH keys (จำนวนคีย์ของ root), Password login, Root login และ Key login ด้านล่างเป็นกล่อง SSH keys for root และกล่อง Login settings ถ้าเพิ่งแก้ไขอะไรในเครื่องเอง คลิก Refresh เพื่ออ่านค่าล่าสุด และคลิก Back เมื่อต้องการกลับหน้า Overview

ภาพจำลองหน้า SSH access ที่เปิดจากปุ่ม Manage SSH Key แสดงการ์ด SSH keys, Password login, Root login, Key login และปุ่ม Add key
การ์ดด้านบนบอกสถานะ SSH ปัจจุบัน คลิก Add key เพื่อวาง Public key (ภาพจำลอง)

ขั้นตอนที่ 3: เพิ่ม Public key ให้ root

คลิก Add key หน้าต่าง Add SSH key จะมีช่อง Public key ให้วางข้อความจากไฟล์ .pub ทั้งบรรทัด แล้วคลิกปุ่ม Add key ในหน้าต่าง เมื่อสำเร็จจะมีข้อความ SSH key added และคีย์จะแสดงในรายการพร้อมชนิด (เช่น ED25519 หรือ RSA) และ fingerprint ที่กดคัดลอกได้

  • ถ้าวาง Private key โดยไม่ตั้งใจ ระบบจะเตือนว่า That is a PRIVATE key และไม่ยอมบันทึก ให้ลบข้อความนั้นแล้ววางไฟล์ .pub แทน
  • ถ้าข้อความไม่ใช่รูปแบบ Public key จะขึ้น That does not look like an SSH public key
  • ถ้าคีย์นี้มีอยู่แล้ว ระบบจะแจ้ง That key is already installed

ชนิดคีย์ที่รองรับได้แก่ ED25519, RSA, ECDSA และคีย์จาก security key (ขึ้นต้นด้วย sk-) หากต้องการเปลี่ยนชื่อคีย์ ให้คลิก Edit แก้ข้อความที่อยู่หลังตัวคีย์ แล้วคลิก Save key

ขั้นตอนที่ 4: ทดสอบล็อกอินด้วยคีย์

ก่อนปิดการใช้รหัสผ่าน ต้องพิสูจน์ก่อนว่าคีย์ใช้ได้จริง เปิด Terminal หน้าต่างใหม่ (อย่าปิดหน้าต่างเดิม) แล้วล็อกอินด้วย IP Public ที่แสดงในหน้า Overview

ssh -i ~/.ssh/id_ed25519 [email protected]

ถ้าตั้ง passphrase ไว้ ระบบจะถาม passphrase ของคีย์ ซึ่งไม่ใช่รหัสผ่าน root เมื่อเข้าได้แสดงว่าคีย์พร้อมใช้งาน แต่ถ้ายังถูกถาม [email protected]'s password ให้ดูหัวข้อปัญหาที่พบบ่อยท้ายคู่มือก่อนทำขั้นตอนถัดไป

ขั้นตอนที่ 5: ปิดการล็อกอินด้วยรหัสผ่านใน Login settings

กล่อง Login settings มีสวิตช์ 4 ตัว

  • Password login: อนุญาตล็อกอิน SSH ด้วยรหัสผ่านสำหรับทุกผู้ใช้
  • Root login: อนุญาตให้ root ล็อกอินผ่าน SSH
  • Root may use a password: ถ้าปิด root จะล็อกอินได้ด้วยคีย์เท่านั้น (prohibit-password)
  • Key login: อนุญาตล็อกอินด้วยคีย์ในรายการด้านบน

ค่าที่แนะนำสำหรับเครื่องที่ใช้ root ด้วยคีย์คือ ปิด Password login แล้วเปิด Root login และ Key login ไว้ จากนั้นคลิก Save settings หน้าต่าง Apply SSH login settings? จะสรุปว่าค่าไหนเปลี่ยนจากอะไรเป็นอะไร ให้ทำเครื่องหมาย I have another way in that works (a tested key, or another user) แล้วคลิก Apply settings

ระบบมีตัวกันล็อกตัวเองไว้ เช่น ไม่ยอมให้ปิด Password login และ Key login พร้อมกัน และไม่ยอมตัดรหัสผ่านของ root ถ้า root ยังไม่มีคีย์ ถ้าเปลี่ยนใจก่อนบันทึก คลิก Discard changes

รายการตรวจความปลอดภัยก่อนเปลี่ยน Login settings ผ่าน Manage SSH Key เช่น ทดสอบคีย์แล้ว และห้ามปิดทั้ง Password login และ Key login
ระบบกันบางกรณีให้อัตโนมัติ แต่การทดสอบคีย์ยังเป็นหน้าที่ของคุณ

ขั้นตอนที่ 6: แก้ไขหรือลบคีย์เมื่อสิทธิ์เปลี่ยน

เมื่อมีคนลาออกหรือคอมพิวเตอร์สูญหาย ให้ลบคีย์ของคนหรือเครื่องนั้นทันที เปิดหน้าเดิมผ่าน Manage SSH Key คลิก Delete ที่คีย์ ตรวจ fingerprint ในหน้าต่าง Delete SSH key ให้ตรงกับคีย์ที่ต้องการลบ แล้วคลิก Delete key ผู้ที่ใช้คีย์นั้นจะล็อกอินไม่ได้อีก

ถ้าเป็นคีย์สุดท้ายและ root ใช้รหัสผ่านไม่ได้ ระบบจะไม่ยอมลบ เพื่อไม่ให้ root ถูกล็อกออกจาก SSH ให้เพิ่มคีย์ใหม่ก่อน หรือเปิด Password login และ Root may use a password ไว้ชั่วคราว

ตรวจสอบว่า Manage SSH Key ตั้งค่าสำเร็จ

กลับมาที่หน้า SSH access การ์ด Password login ควรเป็น Off, Root login เป็น On หรือ Key only และ Key login เป็น On จากนั้นทดสอบว่ารหัสผ่านถูกปฏิเสธจริง ด้วยคำสั่งที่บังคับไม่ให้ใช้คีย์

ssh -o PubkeyAuthentication=no [email protected]

ผลที่ถูกต้องคือ Permission denied (publickey) แปลว่าเซิร์ฟเวอร์รับเฉพาะคีย์แล้ว ความหมายของแต่ละค่าดูเพิ่มได้ใน เอกสาร sshd_config

ปัญหาที่พบบ่อยเกี่ยวกับ Manage SSH Key

ทำไมไม่เห็นปุ่ม Manage SSH Key ในหน้า Overview?

มีสองสาเหตุหลัก คือบัญชีที่ใช้อยู่ไม่ใช่เจ้าของบัญชี (แถว SSH Key จะแสดงเป็น —) หรือเซิร์ฟเวอร์อยู่ในโซนที่ไม่มีเมนูนี้ กรณีแรกให้เจ้าของบัญชีเป็นผู้ดำเนินการ กรณีหลังให้ตั้งค่าคีย์ในเครื่องตามคู่มือ SSH Key บน Linux

ขึ้นข้อความ Could not read the SSH configuration ต้องทำอย่างไร?

หน้า SSH access ต้องอ่านค่าจากในเครื่อง จึงใช้ได้เมื่อเครื่องเปิดอยู่และบูตเสร็จแล้ว ตรวจว่าสถานะเป็น Running รอสักครู่แล้วคลิก Try again หากยังขึ้นซ้ำ ให้เปิดทิกเก็ตแจ้งชื่อเซิร์ฟเวอร์และเวลาที่เกิดปัญหา

ขึ้น Login settings could not be read แต่รายการคีย์แสดงปกติ?

แปลว่าเซอร์วิส sshd ไม่รายงานค่าปัจจุบัน ระบบจึงไม่ให้แก้สวิตช์เพื่อกันการบันทึกค่าที่เดาผิด ตรวจว่า openssh-server ติดตั้งและทำงานอยู่ด้วย systemctl status ssh (Ubuntu/Debian) หรือ systemctl status sshd (AlmaLinux/Rocky Linux) แล้วคลิก Refresh

เพิ่มคีย์แล้วแต่ SSH ยังถามรหัสผ่าน root?

มักเกิดจาก ssh ไม่ได้ส่งคีย์ที่ตรงกัน ให้ระบุไฟล์ด้วย -i แล้วดูรายละเอียดด้วย ssh -v -i ~/.ssh/id_ed25519 [email protected] และเทียบ fingerprint ของคีย์ในเครื่องกับในพอร์ทัลด้วย ssh-keygen -lf ~/.ssh/id_ed25519.pub

คำเตือน root password is locked หมายถึงอะไร?

รหัสผ่านของ root ถูกล็อกไว้ การล็อกอินด้วยรหัสผ่าน รวมถึงผ่าน Console จะใช้กับ root ไม่ได้ ถ้าต้องการปลดล็อก ให้บันทึก Login settings โดยเปิด Password login ไว้ตามที่หน้าจอแนะนำ ถ้าลืมรหัส root ด้วย ให้ตั้งใหม่ด้วย Reset OS Password

หากต้องการให้ทีมช่วยวางนโยบายการเข้าถึงเซิร์ฟเวอร์ทั้งองค์กร ติดต่อทีมงาน THAI DATA CLOUD หรือดูบริการ Cloud Linux Server

สรุปขั้นตอน Manage SSH Key

ทบทวน Manage SSH Key ทั้งหมดตามลำดับ ก่อนนำไปใช้กับระบบจริง

  1. สร้างคู่คีย์บนเครื่องของคุณ
  2. เปิดหน้า SSH access ด้วยปุ่ม Manage SSH Key
  3. เพิ่ม Public key ให้ root
  4. ทดสอบล็อกอินด้วยคีย์
  5. ปิดการล็อกอินด้วยรหัสผ่านใน Login settings
  6. แก้ไขหรือลบคีย์เมื่อสิทธิ์เปลี่ยน

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

อ่านเพิ่มเติมเกี่ยวกับ Manage SSH Key

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน