Linux怎么禁止Root用户远程登录_Linux系统SSH加固与安全设置【教程】
在Linux服务器上开放SSH服务,如果默认配置允许root用户直接远程登录,无异于在系统大门上挂了一把万能钥匙,安全风险不言而喻。为了堵上这个关键漏洞,提升服务器的整体防御等级,下面这几种禁止root远程登录的操作方法,值得每一位管理员仔细配置。 一、修改sshd_config中PermitRoo
在Linux服务器上开放SSH服务,如果默认配置允许root用户直接远程登录,无异于在系统大门上挂了一把万能钥匙,安全风险不言而喻。为了堵上这个关键漏洞,提升服务器的整体防御等级,下面这几种禁止root远程登录的操作方法,值得每一位管理员仔细配置。
一、修改sshd_config中PermitRootLogin参数
这是最直接、最基础的一步,核心思路就是从源头上关闭SSH服务对root用户的认证通道。通过修改一个关键参数,就能让SSH守护进程对所有以root身份发起的连接请求说“不”。
具体操作起来并不复杂:
1. 首先,你需要用一个拥有root权限的账户登录系统,然后打开SSH服务的主配置文件:
vim /etc/ssh/sshd_config
2. 在文件里找到“PermitRootLogin”这一行。如果文件内容较多,可以使用“/PermitRootLogin”命令后按回车来快速搜索定位。
3. 如果这一行前面有“#”号(表示被注释掉了),先删除这个“#”号。接着,把参数值改为“no”,确保最终这一行看起来是这样的:
PermitRootLogin no
4. 这里有个细节需要注意:检查一下整个文件,确保没有其他重复的“PermitRootLogin”配置行,只保留我们修改的这一行,并且它没有被注释。
5. 最后,保存文件并退出编辑器。
二、结合AllowUsers限制可登录用户范围
仅仅禁止root登录可能还不够。为了进一步收紧入口,可以启用“AllowUsers”选项,明确指定只允许哪些普通用户通过SSH登录。这就好比在关上一扇大门后,又给允许进入的人发了一张专属门禁卡,实现了双重的访问控制。
操作步骤是在完成上述第一步的基础上进行的:
1. 在编辑“/etc/ssh/sshd_config”文件时,在“PermitRootLogin no”这行下面,添加一行“AllowUsers”。
2. 在这行后面,跟上你允许登录的一个或多个普通用户名,用户名之间用空格隔开。例如:
AllowUsers admin user1
3. 务必提前确认你列出的这些用户账户已经在系统中创建好,并且配置好了密码或SSH密钥认证。
4. 同样,保存配置文件。
三、关闭密码认证并强制使用密钥登录
这个方法换了一个思路:它不单独针对root用户,而是直接关闭整个密码认证通道。这样一来,包括root在内的所有用户,都无法再通过输入密码的方式远程登录了。只有那些预先在服务器上部署了对应公钥的用户才能连接,这能极大增强系统对抗暴力密码破解的能力。
配置过程如下:
1. 依然是编辑“/etc/ssh/sshd_config”这个关键文件。
2. 找到“PasswordAuthentication”这一行,将其值改为“no”:
PasswordAuthentication no
3. 同时,找到“PubkeyAuthentication”这一行,确保其值为“yes”(通常默认就是):
PubkeyAuthentication yes
4. 确认“AuthorizedKeysFile”这个配置指向正确的公钥文件路径(默认一般是用户家目录下的“.ssh/authorized_keys”)。
5. 最后,也是最关键的一步:必须为你允许登录的普通用户,提前将其SSH公钥内容添加到对应用户家目录的“.ssh/authorized_keys”文件中。
四、新建普通用户并配置免密切换权限
禁止root远程登录后,日常运维工作还需要使用root权限怎么办?一个优雅的解决方案是:创建一个拥有“sudo”权限的普通用户,并且配置成可以免密码切换到root。这样既遵守了“最小权限原则”,又保证了操作的高效流畅。
具体可以这么实现:
1. 创建一个新的普通用户,比如叫“test”:
useradd -m -s /bin/bash test
2. 给这个新用户设置一个密码:
passwd test
3. 将该用户加入到具备sudo权限的组中。在CentOS或RHEL系统中,通常是“wheel”组;在Ubuntu或Debian系统中,则是“sudo”组。以CentOS为例:
usermod -aG wheel test
4. 接下来配置sudo规则,使用visudo命令安全地编辑配置文件:
visudo
5. 在文件中找到类似下面这行(如果被注释就取消注释,如果没有就添加),它允许wheel组的成员无需密码即可执行任何命令:
%wheel ALL=(ALL) NOPASSWD: ALL
6. 保存并退出。配置完成后,用户“test”登录后,就可以直接使用“sudo su -”命令切换到root环境,而不会被再次要求输入密码。
五、重启SSH服务并验证配置生效
前面所有的配置修改,都必须在重启SSH服务后才会真正加载生效。这是至关重要的一步,否则之前的功夫都白费了。同时,重启前务必保持至少一个当前登录会话是活跃的,以防配置有误导致所有连接中断,把自己关在门外。
验证流程如下:
1. 根据你的系统版本,执行相应的重启命令:
对于CentOS 7及以上、Ubuntu 16.04及以上的系统,使用:
systemctl restart sshd
如果是更旧版本的系统(如CentOS 6),则使用:
service sshd restart
2. 打开一个新的终端窗口,尝试用root身份去连接你的服务器:
ssh root@服务器IP
3. 此时,你应该会看到类似“Permission denied, please try again.”的权限拒绝错误,或者连接直接被拒绝。这说明root登录已经被成功禁止。
4. 最后,再用你授权的那个普通用户(比如上面创建的“test”用户)登录一次,验证能够正常连接,并且可以顺利执行sudo命令来获取管理权限。
完成以上五步,你的Linux服务器SSH访问安全性就已经得到了显著的加固。记住,安全是一个持续的过程,结合强密码策略、定期更新、以及防火墙规则,才能构建起更稳固的防线。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















