linux禁用root登录

在 Linux 系统中,禁止 root 用户直接通过 SSH 远程登录是一项基础且至关重要的安全加固措施。这可以有效防止攻击者通过暴力破解等方式直接获取系统的最高权限。

以下是禁用 root 登录的完整操作步骤和最佳实践。

🛑 禁用 Root 登录操作步骤

  1. 修改 SSH 配置文件

首先,您需要编辑 SSH 服务的主配置文件 /etc/ssh/sshd_config。

使用您喜欢的编辑器(如 vim 或 nano)打开文件:

sudo vim /etc/ssh/sshd_config

在文件中找到 PermitRootLogin 这一行。它可能被注释掉了(前面有 #),默认值通常是 yes。

将其修改为 no:

PermitRootLogin no

保存并退出编辑器。

  1. 重启 SSH 服务

修改配置后,需要重启 sshd 服务才能使更改生效。

对于大多数现代 Linux 发行版(如 CentOS 7+, Ubuntu 16.04+),使用 systemctl 命令:

sudo systemctl restart sshd

对于较旧的系统,可能需要使用 service 命令:

sudo service sshd restart

  1. 验证配置

重要提示: 在执行此步骤前,请确保您不要关闭当前的 SSH 会话窗口。

  1. 打开一个新的终端窗口。

  2. 尝试使用 root 用户连接服务器:

ssh root@your_server_ip

  1. 如果配置成功,连接会被拒绝,并提示 Permission denied。

✅ 最佳实践:创建普通用户并授权

禁用 root 登录后,您需要一个普通用户来管理服务器。

  1. 创建新用户

在仍保持 root 登录的旧会话窗口中,创建一个新用户(以 newadmin 为例):

创建用户

sudo useradd -m newadmin

为用户设置密码

sudo passwd newadmin

系统会提示您输入并确认新密码。

  1. 授予 Sudo 权限

为了让新用户能够执行管理员命令,需要将其添加到 sudo 用户组(在 Ubuntu/Debian 上)或直接配置 sudoers 文件(在 CentOS/RHEL 上)。

* Ubuntu/Debian:

sudo usermod -aG sudo newadmin

* CentOS/RHEL:

使用 visudo 命令安全地编辑 /etc/sudoers 文件,添加一行:

newadmin ALL=(ALL) ALL

这允许 newadmin 用户通过 sudo 命令获得临时的 root 权限。

  1. 测试新用户登录

现在,您可以使用新用户 newadmin 登录服务器。登录后,如需执行特权命令,在命令前加上 sudo 即可。

ssh newadmin@your_server_ip

⚠️ 关键注意事项

* 保留一个活动会话:在修改 SSH 配置期间,务必保留一个已经登录的 root 会话窗口不要关闭。直到您确认新用户可以成功登录并拥有 sudo 权限后,再关闭旧的 root 会话。这是防止因配置错误导致无法远程访问服务器的"后悔药"。

* 防火墙与安全组:如果您同时修改了 SSH 的默认端口(22),请确保服务器的防火墙和云平台的安全组规则已经放行了新的端口,否则同样会导致无法连接。

相关推荐
Waay1 小时前
Linux 三个核心环境变量配置文件、作用域、生效方式完整梳理
linux·运维·学习·云原生·容器
星空语1 小时前
音频001_Android+Linux车载/手机音频全链路分层架构图
android·linux·音视频
携程DBA1 小时前
数据库软限制相关研究
linux·mysql·性能
huy1n91 小时前
Ubuntu 22.04部署Claude Code并接入DeepSeek-V4模型完整教程
linux·ubuntu·deepseek·claude code
ICECREAM2 小时前
I/O 多路复用完全指南 —— select、poll、epoll
linux
进阶的猪2 小时前
Linux 内核移植过程学习
linux·学习
问简4 小时前
【共享盘】ubuntu、windows
linux·windows·ubuntu
小生不才yz5 小时前
Shell脚本精读 · S13-01 | POSIX sh 与 Bash:语法对照表
linux
阿拉斯攀登5 小时前
平台设备驱动:platform bus 与设备树
linux·嵌入式硬件·嵌入式·linux驱动·字符设备驱动
阿拉斯攀登5 小时前
并发与同步:自旋锁、信号量、互斥锁
linux·网络·嵌入式硬件·linux驱动·字符设备驱动