安全

如何安全地停用 SSH 的 root 登入

停用 SSH 的 root 登入,擋住那些對著 root@ 試密碼的機器人。先建 sudo 使用者、設 PermitRootLogin no,並從手機做——不會把自己鎖在外面。

CC Chen Chen· 創始人·2026 年 6 月 24 日·閱讀 5 分鐘

為什麼要停用 SSH 的 root 登入?

root 是每個攻擊者都已經知道的那個使用者名稱。掃網路的機器人不猜你的使用者名稱——它們對著 root 一個密碼一個密碼地試。如果你停用 root 的 SSH 登入,這整類攻擊就失效了,攻擊者現在得同時猜對使用者名稱和認證方式。你改用普通使用者登入,需要 root 時用 sudo。這是性價比最高、最省力的 SSH 加固之一。

第 1 步——先確保你有一個 sudo 使用者

在你有別的方式能進去之前,別停 root,否則會把自己鎖在外面。建一個有 sudo 權限的普通使用者:

# 以 root 身份,建用户并给 sudo
adduser alice
usermod -aG sudo alice   # Debian/Ubuntu
# (RHEL/Fedora:usermod -aG wheel alice)

然後在另一個工作階段裡,確認你能用這個使用者登入、並能跑 sudo -v。確認可用之後再繼續。

第 2 步——給這個使用者配金鑰(推薦)

順手給新使用者設定金鑰認證——它才是真正的安全收益,比單純停 root 更大。把你的公鑰加到 /home/alice/.ssh/authorized_keys(TermAI 這類行動用戶端能替你部署)。見 SSH 金鑰 vs 密碼

第 3 步——停用 root 登入

/etc/ssh/sshd_config 裡設:

PermitRootLogin no

然後重啟 SSH:sudo systemctl restart ssh。保持目前工作階段開著,在新連線裡確認你仍能用你的使用者登入——而 ssh root@host 現在被拒。

以普通使用者(非 root)登入的 SSH 工作階段
用普通使用者登入、用 sudo。設了 PermitRootLogin no 後,直接 root SSH 被拒——那些錘 root@ 的機器人也就無功而返。

從手機做

這些都能在行動 SSH 用戶端裡完成:用 SFTP 或 nano 編輯 sshd_config、在終端機裡跑建使用者/sudo 命令、把儲存的連線使用者名稱從 root 改成你的新使用者。如果不確定你這個發行版的確切 usermod 群組,問 TermAI 助手——它從工作階段裡就知道你是 Debian 還是 RHEL,給出對的命令。

TermAI 建議一條使用者管理命令,帶 Run 按鈕
問'加一個 sudo 使用者',得到針對這個發行版的對命令——貼著你連上的伺服器——複核後再執行。

加固清單的其餘部分

停 root 和其它基本功天然配套,按影響力排序:

  1. 金鑰 + PasswordAuthentication no——最大的收益(金鑰 vs 密碼)。
  2. 停用 root 登入——本文。
  3. fail2ban——自動封反覆試探者。
  4. 放 Tailscale/WireGuard 後面——乾脆不把 SSH 公開暴露。
  5. 可選改連接埠——為了日誌清淨(該改 SSH 連接埠嗎?)。

常見問題

怎麼停用 SSH 的 root 登入?
/etc/ssh/sshd_configPermitRootLogin no 並重啟 SSH——前提是先建好一個你能登入的 sudo 使用者。

會把自己鎖在外面嗎?
只有跳過 sudo 使用者那步才會。停 root 前,先在另一個工作階段裡建並測試一個有 sudo 的普通使用者。

該停 root 同時也用金鑰嗎?
該——兩者互補。金鑰擋住密碼攻擊;停 root 拿掉那個人人都盯著的使用者名稱。

快速事實

  • 為什麼:root 是通用的暴破目標;停掉它就擋住這類攻擊
  • 怎麼做:建 sudo 使用者 → 測它 → PermitRootLogin no → 重啟 SSH
  • 別鎖自己:先在另一個工作階段確認 sudo 使用者能用
  • 配套:金鑰認證 + PasswordAuthentication no
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog