云主机 root 权限开放后,安全习惯的核心只有一条:把 root 当作最危险的钥匙,所有操作都围绕“少用、难猜、留痕、限IP”展开。
接手一台新云主机,第一步往往是拿到 root 权限,很多人觉得“开放 root 就完事了”,但真正的考验从这一刻才开始,你面对的不仅是自己的服务器,还有全网扫描端口的自动化脚本、密码字典和暴力破解工具,以下内容基于日常运维经验和行业共识,整理了 root 权限开放后必须养成的几个安全习惯。
root 登录是第一道坎:改默认配置,别让密码裸奔
云主机刚开通时,系统默认允许 root 直接远程登录,密码强度往往也不够,这是最危险的窗口期,业内专家指出,相当一部分入侵事件发生在初始化后的 24 小时内,原因就是默认密码被扫描命中。
第一步:立刻修改 root 密码并启用强密码策略
不要用生日、公司名、连续数字这类“人味”太重的密码,建议用 16 位以上的随机字符串,包含大小写、数字和特殊符号,在 CentOS/Rocky 系统上执行:
passwd root
然后连续输入两次新密码,如果你的云主机商提供密钥对功能,建议直接禁用密码登录,改用 SSH 密钥,这样即使密码泄露,没有私钥文件也进不来。
第二步:修改 SSH 默认端口,降低被扫描概率
22 端口是扫描器的首要目标,把端口改成 1024 以上的随机数,22822,编辑 /etc/ssh/sshd_config:
Port 22822
改完重启 SSH 服务:
systemctl restart sshd
记得先在云厂商安全组里放行新端口,否则你可能会把自己锁在门外,这属于云主机 root 权限开放后安全设置的基础操作,很多人忽略这一步,结果一天被尝试登录几十次。
第三步:限制 root 直接登录,改用普通用户+sudo
这是更稳妥的做法,创建一个日常使用的普通用户,admin:
useradd admin && passwd admin
然后把 admin 加入 sudo 组(CentOS 系统):
usermod -aG wheel admin
接着修改 SSH 配置文件,限制 root 直接登录:

PermitRootLogin no
这样即使有人拿到了 root 密码,也无法通过 SSH 直接远程登录,需要执行管理操作时,先登录 admin,再 sudo su - 切换身份,这条云服务器 root 密码修改与登录限制的规则,能明显减少攻击面。
登录防护是第二道防线:双重验证 + IP 白名单
光改端口和密码还不够,因为端口可以扫出来,密码也可能被钓鱼,接下来要做的是让陌生人即使知道密码也进不来。
启用 SSH 密钥登录,关闭密码认证
在本地生成密钥对(Windows 用 Git Bash,Linux/macOS 直接执行):
ssh-keygen -t rsa -b 4096 -C "your_email"
然后把公钥复制到云主机上:
ssh-copy-id -p 22822 admin@你的服务器IP
确认公钥登录成功后再关闭密码认证,修改 /etc/ssh/sshd_config:
PasswordAuthentication no
这样一来,暴力破解工具拿你毫无办法,因为没有私钥文件,它连输入密码的机会都没有。
配置防火墙只允许可信 IP 访问 SSH
如果你的办公 IP 是固定的,直接在云厂商的安全组里设置来源 IP 白名单,只允许你的 IP 访问 SSH 端口,IP 经常变化,可以搭配云主机自带的“安全组”功能,定期更新规则。
| 防护层级 | 效果 | |
|---|---|---|
| 第一层 | 修改 root 密码 + 改 SSH 端口 | 降低被扫描命中率 |
| 第二层 | 禁用 root 远程登录 + 密钥认证 | 杜绝密码爆破 |
| 第三层 | 安全组限制来源 IP | 只允许可信地址连接 |
root 命令记录与审计:出了事要知道谁做的
很多人以为“服务器就我自己用”,不需要审计,但真实场景是:你可能会被入侵,也可能不小心执行了 rm -rf,系统日志能帮你还原现场,甚至挽回损失。
开启 bash 操作日志,记录所有 root 命令
编辑 /etc/profile,在文件末尾加入:
HISTFILESIZE=10000 HISTSIZE=10000 export HISTTIMEFORMAT="%F %T "
保存后执行 source /etc/profile,这样每次执行命令都会记录时间戳,更高级的做法是给 root 用户单独配置 ~/.bash_history 的追加模式,避免多终端覆盖。
使用 auditd 监控关键文件变更
安装并启动审计服务:
yum install audit -y systemctl start auditd systemctl enable auditd
添加规则监控 /etc/passwd、/etc/sudoers 等文件:
auditctl -w /etc/passwd -p wa -k passwd_changes auditctl -w /etc/sudoers -p wa -k sudoers_changes
查看日志:
ausearch -k passwd_changes
这个习惯在排查“谁动了我的服务器”时非常有用,对于多人共管同一台云主机的场景,更是必备,云主机 root 权限开放后的安全习惯,不能只关注“防外部”,也要防内部误操作。
定期更新与补丁:别让系统带病运行
root 权限意味着你能安装任何软件,也意味着你要为系统的每个漏洞负责,很多攻击者利用的是已知的旧版本漏洞,而不是零日漏洞。
每两周做一次安全更新
Ubuntu/Debian 系统:
apt update && apt upgrade -y
CentOS/Rocky 系统:
yum update -y
注意,大版本升级需要谨慎测试,PHP 或 MySQL 的跨版本更新可能带来兼容性问题,建议先在测试环境验证,再对生产环境操作。
关注云服务商的安全公告
简米云、酷番云、华为云等平台都会发布漏洞预警,特别是针对内核、OpenSSH、Web 服务器组件的高危漏洞,收到通知后,尽快安排维护窗口,别嫌麻烦,华为人均每天要处理上万次入侵告警,你的服务器不是例外。
备份是最后的底牌:把 root 权限用在刀刃上
有了 root 权限,你可以在系统崩溃时手动恢复,也正因为如此,很多人懒得备份,但真正遇到勒索病毒或数据误删时,没有备份就只能自认倒霉。
用 root 配置自动备份任务
以常用的 rsync + crontab 为例,先安装 rsync:

yum install rsync -y
写一个简短的备份脚本 /opt/backup.sh:
#!/bin/bash # 备份 /var/www 网站目录到 /backup rsync -avz /var/www/ /backup/www_$(date +%Y%m%d)/
添加执行权限并设置定时任务:
chmod +x /opt/backup.sh crontab -e
添加一行:
00 3 /opt/backup.sh
表示每天凌晨 3 点执行,数据库备份用类似思路,通过 mysqldump 或 PostgreSQL 的 pg_dump 定时导出 SQL 文件,备份文件不要存放在同一台云主机的系统盘里,建议存到对象存储或其他服务器上。
测试备份恢复流程
光备份不恢复等于没备份,每季度至少做一次恢复演练,从备份中恢复一个目录或数据库,确认文件完整、服务能启动,这个过程可能很枯燥,但一只训练有素的恢复流程,胜过一万句“我平时有备份”。
Q&A:云主机 root 权限开放后常见疑问
root 密码需要多久改一次比较合适?
如果你已经改用密钥登录并限制 IP,密码可以 6~12 个月改一次,如果仍在用密码登录,建议 3 个月改一次,频繁修改可能带来记不住、写纸条乱贴等新问题,所以核心还是靠密钥和 IP 白名单来兜底。
不小心用 root 执行了 rm -rf / 怎么办?还能恢复吗?
立即断开服务器网络连接,防止更多数据被覆盖,如果文件系统已经被删除,恢复概率很低,但可以尝试用 extundelete 或 testdisk 扫描系统盘。最有效的方式是从定期备份中恢复,这就是为什么反复强调备份的重要,每次输入高风险命令前,先想想有没有备份。
云主机 root 权限和普通用户在权限管理上有什么区别?
root 可以对系统做任何修改,包括修改内核参数、覆盖关键配置、直接操作文件系统,普通用户最多只能操作自己权限范围的内容,即使误操作,也不会影响整个系统,从安全角度出发,日常管理应该用普通用户,只有安装软件、修改系统配置等操作时才临时提权,这种最小权限原则,是云主机 root 权限开放后安全设置的核心逻辑之一。
