为什么要禁用 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 现在被拒。
从手机做
这些都能在移动 SSH 客户端里完成:用 SFTP 或 nano 编辑 sshd_config、在终端里跑建用户/sudo 命令、把保存的连接用户名从 root 改成你的新用户。如果不确定你这个发行版的确切 usermod 组,问 TermAI 助手——它从会话里就知道你是 Debian 还是 RHEL,给出对的命令。
加固清单的其余部分
禁 root 和其它基本功天然配套,按影响力排序:
- 密钥 +
PasswordAuthentication no——最大的收益(密钥 vs 密码)。 - 禁用 root 登录——本文。
- fail2ban——自动封反复试探者。
- 放 Tailscale/WireGuard 后面——干脆不把 SSH 公开暴露。
- 可选改端口——为了日志清净(该改 SSH 端口吗?)。
常见问题
怎么禁用 SSH 的 root 登录?
在 /etc/ssh/sshd_config 设 PermitRootLogin no 并重启 SSH——前提是先建好一个你能登录的 sudo 用户。
会把自己锁在外面吗?
只有跳过 sudo 用户那步才会。禁 root 前,先在另一个会话里建并测试一个有 sudo 的普通用户。
该禁 root 同时也用密钥吗?
该——两者互补。密钥挡住密码攻击;禁 root 拿掉那个人人都盯着的用户名。
快速事实
- 为什么:
root是通用的暴破目标;禁掉它就挡住这类攻击 - 怎么做:建 sudo 用户 → 测它 →
PermitRootLogin no→ 重启 SSH - 别锁自己:先在另一个会话确认 sudo 用户能用
- 配套:密钥认证 +
PasswordAuthentication no
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.