如何限制root登录 ssh配置

发布时间 - 2025-08-28 00:00:00    点击率:

首先禁止 root 用户通过 ssh 直接登录,具体方法是编辑 /etc/ssh/sshd_config 文件,将 permitrootlogin 设置为 no;1. 使用 sudo vim /etc/ssh/sshd_config 打开配置文件;2. 修改 #permitrootlogin yes 为 permitrootlogin no;3. 保存后重启 ssh 服务,使用 sudo systemctl restart sshd;4. 确保已创建普通管理员用户(如 admin),并将其加入 sudo(debian/ubuntu)或 wheel(centos/rhel)组;5. 推荐启用密钥登录、更改默认端口、配置防火墙和部署 fail2ban 以增强安全;6. 验证配置:尝试用 root 登录应被拒绝,说明限制已生效。

在 Linux 系统中,为了提高服务器的安全性,通常建议限制 root 用户通过 SSH 直接登录。这样可以防止攻击者直接暴力破解 root 账户密码。以下是限制 root 登录的 SSH 配置方法。

修改 SSH 服务配置文件

SSH 服务的配置文件通常位于

/etc/ssh/sshd_config
。你需要编辑这个文件来禁用 root 登录。

  1. 使用文本编辑器打开配置文件:
sudo vim /etc/ssh/sshd_config
  1. 找到以下这一行:
#PermitRootLogin yes

将其修改为:

PermitRootLogin no
说明:PermitRootLogin no:完全禁止 root 用户通过 SSH 登录。其他可选值(了解即可):without-password 或 prohibit-password:允许 root 使用密钥登录,但不允许密码登录。yes:允许 root 密码登录(不推荐)。forced-commands-only:只允许 root 执行预定义命令,通常用于自动化任务。
  1. 保存并退出编辑器。

重启 SSH 服务

修改配置后,必须重启 SSH 服务才能生效。

  • 在大多数现代 Linux 发行版(如 Ubuntu 18.04+、CentOS 7+)上使用:
sudo systemctl restart sshd
  • 对于旧版本的 Ubuntu,可能使用:
sudo systemctl restart ssh

⚠️ 注意:重启前建议确保你有其他管理员账户可以登录,否则可能被锁在系统外。

配置普通用户并提升权限(推荐做法)

禁用 root 登录后,应使用普通用户登录,再通过

sudo
su
切换到 root。

  1. 创建一个普通用户(例如
    admin
    ):
sudo adduser admin
  1. 将用户加入 sudo 组(Debian/Ubuntu):
sudo usermod -aG sudo admin

或加入 wheel 组(CentOS/RHEL):

sudo usermod -aG wheel admin
  1. 使用
    admin
    用户通过 SSH 登录,需要 root 权限时执行:
sudo su -

或直接运行需要权限的命令:

sudo systemctl restart nginx

额外安全建议

  • 使用密钥认证:禁用密码登录,仅允许 SSH 密钥登录,更安全。
  • 更改默认 SSH 端口:将端口从 22 改为其他端口,减少自动扫描攻击。
  • 启用防火墙:使用
    ufw
    firewalld
    限制访问 IP。
  • 使用 Fail2ban:自动封禁多次尝试登录失败的 IP。

验证配置是否生效

你可以通过另一台机器尝试用 root 登录:

ssh root@your_server_ip

如果返回类似 “Permission denied, please try again.” 或直接拒绝连接,说明配置成功。


基本上就这些。限制 root 登录是一个简单但非常有效的安全措施,强烈建议在生产环境中启用。


# linux  # word  # centos  # nginx  # ubuntu  # ai  # try  # vim  # ssh  # debian  # 自动化  # 重启  # 配置文件  # 编辑器  # 普通用户  # 是一个  # 你可以  # 将其  # 你有  # 可选  # 但不 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站制作软件有哪些,制图软件有哪些?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  iOS中将个别页面强制横屏其他页面竖屏  Laravel怎么在Controller之外的地方验证数据  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  黑客如何通过漏洞一步步攻陷网站服务器?  PHP 500报错的快速解决方法  如何获取上海专业网站定制建站电话?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何快速搭建个人网站并优化SEO?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel如何生成API文档?(Swagger/OpenAPI教程)  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  南京网站制作费用,南京远驱官方网站?  如何在Tomcat中配置并部署网站项目?  JS经典正则表达式笔试题汇总  Python结构化数据采集_字段抽取解析【教程】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  EditPlus中的正则表达式 实战(2)  个人网站制作流程图片大全,个人网站如何注销?  ,怎么在广州志愿者网站注册?  如何在新浪SAE免费搭建个人博客?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在云主机快速搭建网站站点?  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  如何在IIS7上新建站点并设置安全权限?  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何获取免费开源的自助建站系统源码?  网站页面设计需要考虑到这些问题  Python文件流缓冲机制_IO性能解析【教程】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何快速搭建安全的FTP站点?  如何快速搭建高效简练网站?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel安装步骤详细教程_Laravel环境搭建指南  HTML 中动态设置元素 name 属性的正确语法详解  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  b2c电商网站制作流程,b2c水平综合的电商平台?  Java类加载基本过程详细介绍