禁止 root 通过 SSH 直接登录
服务器加固第一步:彻底关掉来自互联网的 root 直连。
在 /etc/ssh/sshd_config 里设置 PermitRootLogin no 并重启 sshd——root 无法再直连,请用普通用户登录后再 sudo。
01命令
命令
$ sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl restart sshd02作用说明
公网上的 SSH 端口每天都在被机器人扫 root@,PermitRootLogin no 直接端掉这个目标:攻击者还得再猜一个有效的用户名。你并没有失去管理权限——用普通用户登录后照常 sudo 即可。改完先用 sshd -t 校验配置,再重启 sshd 生效。
03风险
!注意: 关闭当前会话之前,务必确认普通账户能正常 sudo——远程服务器上这是最经典的把自己锁在门外的操作;建议先用 sshd-config-test 校验配置文件。
04撤销
撤销
$ sudo sed -i 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config && sudo systemctl restart sshd05来源
- sshd_config(5) — Linux manual page依据: PermitRootLogin no prevents root from logging in directly via SSH; changes require restarting sshd to take effect.
- SecuringDebianHowto — Debian Wiki依据: 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 · 分类: 安全与隐私