宝塔面板换成CyberPanel后有一点不习惯,宝塔专业版的WAF有个功能不错,SSH被链接过多就会封锁这个IP防止被黑。CyberPanel目前我还没完全吃透,干脆禁了系统的root,防止被人不断暴力破解。不过话说谁吃饱了没事干老来针对万事屋这个荒岛搞事情?

本文详细教你如何安全地禁用Ubuntu系统root账户的SSH远程登录权限,并创建替代的管理员账户。在执行任何操作之前,务必确保你已拥有一个具备sudo权限的替代管理用户。否则,你可能会被锁死在系统之外!
为什么要禁用SSH的Root登录?
默认情况下,虽然Ubuntu系统的root用户是禁用的,但某些自定义环境可能会启用它。允许root直接通过SSH远程登录存在严重安全风险:
- 暴力破解目标明确:黑客会不断尝试对服务器的root用户进行密码爆破。
- 权限过高:一旦root密码被破解,攻击者将直接获得系统最高权限,后果不堪设想。
禁用root的SSH登录,强制使用普通用户登录后再切换至root</strong,能有效增加攻击门槛,是服务器安全的基本要求。
禁用SSH Root登录详细步骤
第一步:创建具有sudo权限的管理员账户
如果你还没有一个具有sudo权限的普通用户,请务必先创建一个。
- 以root用户身份登录你的服务器(或使用当前有sudo权限的用户)。
- 执行以下命令创建新用户(将
yourusername替换为你想要的用户名):adduser yourusername根据提示设置密码并填写用户信息(其他信息可直接回车跳过)。
- 授予新用户sudo权限:
usermod -aG sudo yourusername - (至关重要的一步!) 在新开的终端窗口或SSH会话中,使用新创建的用户名和密码登录服务器,验证该用户是否可以成功登录并能执行sudo命令:
sudo su -输入用户密码后,若提示符变为
root@,则说明sudo权限配置成功。确保此步骤成功后再进行后续操作!否则你可能永久失去服务器访问权限!
第二步:修改SSH配置文件
- 通过SSH以你的新管理用户身份登录服务器,或者如果你已在服务器上,请确保当前会话是有效的。
- 使用文本编辑器(如nano)打开SSH守护进程的配置文件
sshd_config:sudo nano /etc/ssh/sshd_config - 在文件中找到包含
PermitRootLogin的配置行。它可能看起来像这样:#PermitRootLogin prohibit-password或者
PermitRootLogin yes - 取消该行的注释(删除行首的
#号,如果存在的话),并将其值修改为no:PermitRootLogin no这表示明确禁止root用户通过SSH登录。
- (可选但强烈建议)同时检查并确保以下配置,进一步提升安全性:
PasswordAuthentication no # 如果你只使用密钥认证,可禁用密码登录 PubkeyAuthentication yes # 确保启用公钥认证 - 保存并关闭文件。
- 在nano编辑器中,按
Ctrl+X,然后按Y,最后按Enter确认。
- 在nano编辑器中,按
第三步:重启SSH服务使配置生效
修改配置后,必须重启SSH服务才能使更改生效。执行以下命令:
sudo systemctl restart ssh
或者,在某些较早的系统或特定发行版上,服务名可能是:
sudo systemctl restart sshd
重启SSH服务通常不会中断现有的SSH连接,这是一个好消息,意味着你当前的连接不会断掉。但所有新的连接尝试将会应用新的配置规则。
第四步:验证配置是否生效
- 保持你当前的SSH连接不要断开(这是你的安全通道和救命稻草)。
- 打开另一个终端窗口,尝试使用root用户通过SSH连接你的服务器:
ssh root@你的服务器IP地址 - 如果配置正确,你现在应该会看到类似 “Permission denied”(权限被拒绝) 或 “Connection closed”(连接关闭) 的错误信息,并且无法以root身份登录。
- 请务必再次使用你的普通管理用户尝试SSH登录,确认其仍然可以正常登录并拥有sudo权限。这一步是双重保险,确保你没有误操作。
重要提醒和故障排除
- 切记切记:在禁用root的SSH登录之前,必须确保有其他可用的、具有sudo权限的普通用户能够远程登录。这是最重要的准则,否则下一步操作就会让你永久失去远程管理服务器的能力!
- 如果修改后遇到问题(无法登录):
- 如果你有通过服务器控制台(如KVM、VNC、云服务商提供的网页终端)的访问权限,可以通过它登录服务器检查并修复配置。这是最后的补救措施。
- 检查配置文件语法是否正确,特别是
PermitRootLogin no是否拼写准确,确保没有多余的空格或字符。 - 确认是否成功重启了SSH服务,可以使用
sudo systemctl status ssh检查服务状态。
- 强烈建议结合使用SSH密钥认证、禁用密码登录、修改默认SSH端口(22) 以及使用 Fail2ban 等工具,可以极大增强服务器的SSH安全防护能力,构建多层防御体系。
总结
禁用Ubuntu系统root账户的SSH远程登录是一个简单却至关重要的服务器安全加固措施。它迫使攻击者需要同时破解一个有效的用户名和其密码(或窃取其私钥),显著增加了攻击难度,提升了系统的整体安全性。
只需简单修改 /etc/ssh/sshd_config 文件中的 PermitRootLogin 值为 no 并重启SSH服务,就能有效降低服务器被暴力破解的风险。记住,系统安全在于细节,防御始于最基本的配置!
版权所有 © 万事屋 2025 | 本文由万事屋创作,转载请保留出处:https://www.rei3.com

















没有回复内容