禁用root SSH登录需先创建并验证sudo用户,再将sshd_config中PermitRootLogin设为no并重启sshd服务;该操作拒绝所有root远程连接,必须确保普通用户可用且权限正确,否则将导致系统失联。

在银河麒麟操作系统中禁用root账户直接通过SSH连接,是为了防止暴力破解和误操作导致系统失控,必须先确保已有具备sudo权限的普通用户可用,再修改SSH服务配置并重启。
创建并验证普通管理员用户
这一步不可跳过,否则修改后将彻底失去远程管理能力。当前会话保持root登录状态,新开终端执行以下命令:
创建新用户(以admin为例):sudo useradd -m -s /bin/bash admin
设置密码:sudo passwd admin
授予sudo权限(银河麒麟V10默认使用sudo组):sudo usermod -aG sudo admin
【必须验证】立即新开一个终端窗口,用新用户登录:ssh admin@localhost;登录成功后执行sudo whoami,输出root才表示权限配置正确。
修改sshd_config禁用root SSH登录
这是唯一可靠的核心操作,其他方法(如改shell、锁密码)不能替代它。PermitRootLogin no生效后,所有root的SSH、SCP、SFTP连接都会被拒绝。
第一步:备份原配置,防止误操作无法回退:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
第二步:编辑主配置文件:sudo vim /etc/ssh/sshd_config
第三步:搜索PermitRootLogin(输入/PermitRootLogin回车),定位到该行;若被注释(开头有#),删除#;将值改为no,确保整行是PermitRootLogin no
第四步:检查全文是否仅存在一行未注释的PermitRootLogin,重复或冲突项会导致策略失效
第五步:保存退出,执行sudo systemctl restart sshd使配置立即生效
验证禁用效果并加固访问控制
不要关闭当前root终端,用另一个终端窗口测试:
尝试root登录:ssh root@本机IP,应返回Permission denied,说明已生效
方法一:启用密钥认证并关闭密码登录(推荐)
确认/etc/ssh/sshd_config中PasswordAuthentication no且PubkeyAuthentication yes;为admin用户部署公钥:ssh-copy-id -i ~/.ssh/id_rsa.pub admin@本机IP
方法二:限制可登录用户范围
在sshd_config中PermitRootLogin no下方添加:AllowUsers admin;多个用户用空格分隔,写错一个字母就会全部拒连

















