คำตอบแบบสั้น
ฉันจะทำให้ SSH แข็งแรงบน VPS ใหม่ได้อย่างไร?
ในการทำให้ SSH แข็งแรงบน VPS ใหม่ ให้สร้างผู้ใช้ sudo ติดตั้งคีย์สาธารณะของคุณ แล้วตั้ง PasswordAuthentication no, PermitRootLogin no และ AllowUsers ในไฟล์ drop-in ภายใต้ /etc/ssh/sshd_config.d/ ตรวจด้วย sshd -t แล้วโหลดใหม่ Gloamport Dusk, 1 vCPU, 2 GB RAM, 40 GB NVMe, 2 TB traffic, มีราคา $5.25 ต่อเดือนเมื่อสมัคร 12 เดือน
ตัวเลือก sshd_config ใดสำคัญที่สุดบน VPS ใหม่?
| ตัวเลือก | ค่า | ค่าเริ่มต้นในคู่มือ sshd_config |
|---|---|---|
PasswordAuthentication | no | yes |
KbdInteractiveAuthentication | no | yes (ไฟล์ของ Debian ตั้งค่า no) |
PermitRootLogin | no | prohibit-password |
PubkeyAuthentication | yes | yes |
AllowUsers | ผู้ใช้ sudo ของคุณ | ผู้ใช้ทุกคน |
MaxAuthTries | 3 | 6 |
LoginGraceTime | 30 | 120 วินาที |
ค่าเริ่มต้นตามที่ระบุใน sshd_config(5) ตรวจเมื่อ 2026-11-10 ค่าในคอลัมน์กลางคือตัวเลือกของคู่มือนี้
ทำไมต้องทำให้ SSH แข็งแรงก่อนสิ่งอื่น?
SSH เป็นบริการเดียวที่ VPS ทุกเครื่องเปิดตั้งแต่นาทีแรก จึงเป็นประตูแรกที่ต้องล็อก การเดารหัสผ่านที่พอร์ต 22 เริ่มทันทีที่มีที่อยู่ใช้งาน และการล็อกอินด้วยคีย์เท่านั้นจะตัดการโจมตีประเภทนั้นออกทั้งหมด
Root over SSH. Paste a public key at checkout and password login stays switched off; leave it empty and the team sets a temporary root password, shown in your dashboard, that you change at first login หากคุณวางคีย์ตอนชำระเงิน การล็อกอินด้วยรหัสผ่านจะปิดอยู่แล้ว และคู่มือนี้จะเพิ่มข้อจำกัดที่เหลือ หากคุณได้รับรหัสผ่าน root ชั่วคราว ให้เปลี่ยนด้วย passwd ตอนล็อกอินครั้งแรก ก่อนทำอย่างอื่น ตามการสำรวจของ Gloamport เกี่ยวกับ 10 พฤศจิกายน 2569 มี 6 โฮสต์ที่รับ Monero และไม่ขออีเมลตอนสมัคร ดังนั้นในเซิร์ฟเวอร์เหล่านั้น คีย์ SSH และหมายเลขบัญชีคือความลับเพียงอย่างเดียวที่ปกป้องเครื่อง
ฉันจะทำให้ SSH แข็งแรงบน VPS ใหม่ทีละขั้นตอนได้อย่างไร?
ทำตามลำดับนี้ และเปิดเซสชันแรกไว้จนจบ
สร้างผู้ใช้ทั่วไป
รัน
adduserและเพิ่มผู้ใช้เข้ากลุ่มsudoเพื่อให้คุณหยุดทำงานในฐานะ rootติดตั้งคีย์สาธารณะของคุณให้ผู้ใช้นั้น
คัดลอกคีย์ที่ได้รับอนุญาตไปยังผู้ใช้ใหม่ หรือรัน
ssh-copy-id -iจากคอมพิวเตอร์ของคุณ ทดสอบการล็อกอินในเทอร์มินัลที่สองเขียนไฟล์ drop-in
สร้าง
/etc/ssh/sshd_config.d/00-hardening.confพร้อมตัวเลือกจากตาราง Debian ใส่โฟลเดอร์นั้นไว้ที่ต้นของ sshd_config และค่าแรกของตัวเลือกจะมีผล ดังนั้นชื่อไฟล์ต้องเรียงขึ้นก่อนทดสอบการตั้งค่า
รัน
sshd -tมันตรวจไฟล์ตั้งค่าและคีย์โดยไม่ต้องรีสตาร์ตอะไร และรันsshd -Tเพื่อแสดงค่าที่มีผลจริงโหลดบริการใหม่
รีสตาร์ต
sshและเปิดเซสชันใหม่ในฐานะผู้ใช้ใหม่ก่อนปิดเซสชันเก่ายืนยันว่า root และรหัสผ่านถูกปฏิเสธ
ลองล็อกอินเป็น root และด้วยรหัสผ่านจากเทอร์มินัลอีกเครื่อง ทั้งสองต้องล้มเหลว
ฉันจะสร้างผู้ใช้ sudo และใส่คีย์ของฉันให้ได้อย่างไร?
สร้างผู้ใช้ เพิ่มเข้า sudo และคัดลอกคีย์ที่ได้รับอนุญาตของบัญชี root ไปยังผู้ใช้นั้น ใช้คีย์ของคุณจาก ฉันจะสร้างคีย์ SSH สำหรับ VPS ของฉันได้อย่างไร? หากยังไม่มี แทนที่ admin ด้วยชื่อผู้ใช้ที่คุณต้องการ
adduser admin
usermod -aG sudo admin
mkdir -p /home/admin/.ssh
cp /root/.ssh/authorized_keys /home/admin/.ssh/authorized_keys
chown -R admin:admin /home/admin/.ssh
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keysไฟล์ drop-in ของ sshd_config มีอะไรบ้าง?
ใส่ตัวเลือกไว้ในไฟล์ drop-in เดียว เพื่อไม่ให้การอัปเกรดแพ็กเกจเขียนทับ คู่มือ sshd_config ระบุว่าสำหรับคีย์เวิร์ดส่วนใหญ่จะใช้ค่าแรกที่พบ และไฟล์ของ Debian รวม /etc/ssh/sshd_config.d/*.conf ไว้ที่ต้น ดังนั้นคำนำหน้า 00- จะทำให้ของคุณมีผลเหนือไฟล์อย่างเช่น drop-in ของอิมเมจบนคลาวด์
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers admin
MaxAuthTries 3
LoginGraceTime 30sshd -t
sshd -T | grep -E "passwordauthentication|permitrootlogin|allowusers"
systemctl restart sshควรเปลี่ยนพอร์ต SSH หรือเพิ่มไฟร์วอลล์ไหม?
การเปลี่ยนพอร์ตช่วยลดสัญญาณรบกวนในล็อก แต่ไม่ได้เพิ่มความปลอดภัยจริง จึงเป็นตัวเลือกไม่บังคับ คุณตั้งค่าได้ด้วย Port และอนุญาตให้มีบรรทัด Port หลายบรรทัด หากเปลี่ยน ให้เปิดพอร์ตใหม่ในไฟร์วอลล์ก่อนรีสตาร์ต ssh KVM เต็มรูปแบบ: เคอร์เนลของคุณเอง กฎไฟร์วอลล์ของคุณเอง และการเข้ารหัสดิสก์ของคุณเองหากคุณตั้งค่าไว้ ดังนั้นคุณใช้ไฟร์วอลล์ที่เหมาะกับคุณได้
เมื่อ SSH แน่นหนาแล้ว ชั้นถัดไปคือทางเชื่อมส่วนตัว (วิธีตั้งค่า WireGuard บน VPS?) และดิสก์ที่เข้ารหัส (ฉันเข้ารหัสดิสก์ VPS ด้วย LUKS ได้ไหม?) Dusk ที่มี RAM 2 GB มีราคา $5.25 ต่อเดือนเมื่อสมัคร 12 เดือน ดูได้ที่ หน้าราคา
สรุป
- ทำงานในฐานะผู้ใช้ sudo ไม่ใช่ root
- ตั้งค่า
PasswordAuthentication noและKbdInteractiveAuthentication no - ตั้งค่า
PermitRootLogin noเมื่อผู้ใช้ sudo ใช้งานได้แล้ว - ใช้
AllowUsersเพื่อระบุว่าใครล็อกอินได้ - ใส่ตัวเลือกไว้ใน drop-in ที่ชื่อเรียงขึ้นก่อน เช่น
00-hardening.conf - รัน
sshd -tก่อนรีสตาร์ตทุกครั้ง และเปิดเซสชันที่สองไว้ - Dusk มีราคา $5.25 ต่อเดือนเมื่อสมัคร 12 เดือน
การทำให้ SSH แข็งแรงบน VPS: คำถามที่พบบ่อย
PermitRootLogin prohibit-password หมายความว่าอย่างไร?
มันอนุญาตให้ root ล็อกอินด้วยคีย์แต่ไม่ให้ล็อกอินด้วยรหัสผ่าน คู่มือระบุว่าเป็นค่าเริ่มต้น และ no ก้าวไปอีกขั้นหนึ่ง
ทำไมการเปลี่ยนแปลงใน sshd_config ของฉันไม่มีผล?
ค่าแรกของตัวเลือกจะมีผล และ Debian รวมโฟลเดอร์ sshd_config.d ก่อน drop-in ที่มาก่อนอาจกำหนดตัวเลือกนั้นไว้แล้ว ดังนั้นตั้งชื่อของคุณเป็น 00-hardening.conf และตรวจด้วย sshd -T
ฉันทดสอบการตั้งค่าโดยไม่ทำให้ SSH พังได้อย่างไร?
รัน sshd -t ซึ่งตรวจเฉพาะไฟล์ตั้งค่าและคีย์ เปิดเซสชันที่สองไว้เมื่อคุณรีสตาร์ต
ฉันต้องปิดการล็อกอินด้วยรหัสผ่านไหม หากวางคีย์ตอนชำระเงินแล้ว?
ที่ Gloamport การวางคีย์จะปิดการล็อกอินด้วยรหัสผ่านไว้แล้ว การตั้งตัวเลือกใน drop-in จะคงสถานะนี้ไว้หลังการอัปเกรด
MaxAuthTries ทำอะไร?
มันจำกัดจำนวนครั้งที่พยายามยืนยันตัวตนต่อการเชื่อมต่อหนึ่งครั้ง คู่มือให้ค่าเริ่มต้นเป็น 6 และคู่มือนี้ตั้งเป็น 3
แหล่งข้อมูล (3)
- หน้าคู่มือ sshd_config(5) — Debian (checked 2026-11-10)
- หน้าคู่มือ sshd(8) (-t และ -T) — Debian (checked 2026-11-10)
- หน้าคู่มือ ssh-copy-id(1) — Debian (checked 2026-11-10)