当前位置:首页 > Linux > 正文

如何开放linux root远程登录

/etc/ssh/sshd_config 文件,设置 PermitRootLogin yes

修改SSH配置文件

SSH服务的主配置文件是/etc/ssh/sshd_config,通过编辑此文件可以调整SSH服务的相关设置。

  1. 使用文本编辑器打开配置文件

    sudo vi /etc/ssh/sshd_config
  2. 找到并修改以下参数

    • PermitRootLogin:控制是否允许root用户登录。
      • 默认值可能是without-password(禁止密码登录但允许密钥登录)或prohibit-password(完全禁止)。
      • 修改为yes以允许root通过任何方式登录。
        PermitRootLogin yes
    • PasswordAuthentication(可选):如果希望允许root使用密码登录,确保此项设置为yes
      PasswordAuthentication yes
  3. 保存并退出编辑器


重启SSH服务以应用更改

修改配置文件后,需重启SSH服务使更改生效。

sudo systemctl restart sshd

验证服务状态

sudo systemctl status sshd

确保服务正在运行且无错误。


增强安全性措施

开放root远程登录存在较高安全风险,建议结合以下措施降低风险:

安全措施 说明
限制IP访问 仅允许特定IP地址通过SSH连接root用户。
强制使用密钥认证 禁用密码登录,仅允许通过SSH密钥认证。
更改默认SSH端口 将SSH服务端口从22改为其他高端口,减少被扫描的风险。
启用防火墙 使用ufwiptables限制SSH访问。
设置复杂密码 为root用户设置高强度密码,防止暴力破解。
使用fail2ban 自动封禁多次失败的SSH登录尝试,增强防护。

限制IP访问示例

编辑/etc/ssh/sshd_config,添加或修改以下行:

如何开放linux root远程登录  第1张

AllowUsers root@192.168.1.100

上述配置仅允许IP地址为168.1.100的用户以root身份登录。


强制使用密钥认证

  1. 生成SSH密钥对(客户端)

    ssh-keygen -t rsa -b 4096

    按提示操作,生成公钥和私钥。

  2. 将公钥复制到服务器

    ssh-copy-id root@your_server_ip
  3. 禁用密码认证
    /etc/ssh/sshd_config中设置:

    PasswordAuthentication no

    重启SSH服务:

    sudo systemctl restart sshd

更改SSH默认端口

  1. 编辑配置文件

    sudo vi /etc/ssh/sshd_config

    修改或添加:

    Port 2222
  2. 开放新端口的防火墙规则

    sudo ufw allow 2222/tcp
    sudo ufw delete allow 22/tcp
  3. 重启SSH服务

    sudo systemctl restart sshd

测试远程登录

使用以下命令测试root用户的SSH连接:

ssh root@your_server_ip -p 2222

若端口未更改,可省略-p参数。


禁用Root远程登录(建议非必要时关闭)

完成必要操作后,建议重新禁用root登录以提升安全性:

  1. 编辑配置文件

    sudo vi /etc/ssh/sshd_config

    PermitRootLogin改回noprohibit-password

  2. 重启SSH服务

    sudo systemctl restart sshd

FAQs

Q1:如何恢复禁用Root远程登录?
A1:编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为noprohibit-password,保存后重启SSH服务即可。

Q2:为什么建议使用密钥认证而非密码?

0