如何限制root登录 ssh配置

首先禁止 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 登录应被拒绝,说明限制已生效。

如何限制root登录 ssh配置

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 登录是一个简单但非常有效的安全措施,强烈建议在生产环境中启用。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享