禁止 root 通过 SSH 直接登录

服务器加固第一步:彻底关掉来自互联网的 root 直连。

LinuxSSH 远程连接sshd SSH 服务安全加固安全中风险
在 /etc/ssh/sshd_config 里设置 PermitRootLogin no 并重启 sshd——root 无法再直连,请用普通用户登录后再 sudo。

01命令

命令
$ sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl restart sshd

02作用说明

公网上的 SSH 端口每天都在被机器人扫 root@,PermitRootLogin no 直接端掉这个目标:攻击者还得再猜一个有效的用户名。你并没有失去管理权限——用普通用户登录后照常 sudo 即可。改完先用 sshd -t 校验配置,再重启 sshd 生效。

03风险

风险中风险
使用条件OpenSSH server installed; test with sudo sshd -t before restarting (see sshd-config-test)
!注意: 关闭当前会话之前,务必确认普通账户能正常 sudo——远程服务器上这是最经典的把自己锁在门外的操作;建议先用 sshd-config-test 校验配置文件。

04撤销

撤销
$ sudo sed -i 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo systemctl restart sshd

05来源

  • sshd_config(5) — Linux manual page
    man7.org · community · 2026-09-17
    依据: PermitRootLogin no prevents root from logging in directly via SSH; changes require restarting sshd to take effect.
  • SecuringDebianHowto — Debian Wiki
    Debian · community · 2026-09-17
    依据: Disabling direct root SSH login is a core hardening step; administrators should log in as a normal user and use sudo instead.

最后验证: 2026-09-18 · 分类: 安全与隐私

06相关方案