PermitRootLogin
设置为yes
,保存后重启SSH服务(如systemctl restart sshd
),并为root用户设置密码即可,但此举会降低系统安全性,不推荐。Linux如何直接使用root登录密码
在Linux系统中,root用户拥有最高权限,默认情况下,出于安全考虑,大多数发行版禁止直接通过密码以root身份远程登录(如SSH),但在特定场景(如本地调试或内部环境)下,可能需要启用此功能,以下是详细操作指南:
核心步骤:启用root密码登录
-
设置root密码
若未设置过root密码,先执行:sudo passwd root
输入当前用户密码后,设置新的root密码(需输入两次确认)。
-
修改SSH配置文件
编辑SSH守护进程配置文件:sudo nano /etc/ssh/sshd_config
找到以下参数并修改为:
PermitRootLogin yes # 允许root登录 PasswordAuthentication yes # 启用密码验证
若参数被注释(行首有),需删除注释符号。
-
重启SSH服务
- Debian/Ubuntu:
sudo systemctl restart ssh
- CentOS/RHEL:
sudo systemctl restart sshd
- Debian/Ubuntu:
-
测试登录
从另一台机器验证:ssh root@服务器IP
输入设置的root密码,确认登录成功。
安全风险与加固建议
⚠️ 重要警告:
直接允许root密码登录会显著增加系统被暴力破解的风险,若必须启用,务必采取以下措施:
- 使用强密码:
长度≥12位,包含大小写字母、数字、特殊符号(如J7#kQ9!zP2$d
)。 - 限制访问源IP:
在防火墙(如ufw
)中仅允许可信IP访问22端口:sudo ufw allow from 192.168.1.100 to any port 22
- 更改SSH默认端口:
编辑/etc/ssh/sshd_config
,修改:Port 2222 # 改为非标准端口
重启SSH服务并开放新端口。
- 安装fail2ban:
自动封禁多次登录失败的IP:sudo apt install fail2ban # Debian/Ubuntu sudo yum install fail2ban # CentOS/RHEL
替代方案(推荐)
更安全的做法是禁用root密码登录,改用以下方式:
- 通过普通用户切换
- 用普通用户登录后切换至root:
su - root # 输入root密码 或 sudo -i # 输入当前用户密码(需已配置sudo权限)
- 用普通用户登录后切换至root:
- 仅允许SSH密钥登录
编辑/etc/ssh/sshd_config
:PermitRootLogin prohibit-password # 禁止密码登录,仅允许密钥 PasswordAuthentication no # 全局禁用密码验证
恢复默认安全配置
操作完成后,建议恢复设置:
- 修改
/etc/ssh/sshd_config
:PermitRootLogin no PasswordAuthentication no
- 重启SSH服务:
sudo systemctl restart sshd # 或 ssh
- 启用root密码登录:仅建议在隔离测试环境中临时使用。
- 生产环境:必须结合IP限制、强密码和fail2ban等防护措施。
- 最佳实践:日常使用普通账户+
sudo
管理权限,SSH登录强制使用密钥认证。
引用说明:本文配置方法基于OpenSSH官方文档及主流Linux发行版(Ubuntu 22.04/CentOS 7+)安全指南,具体操作请以实际环境为准,并参考OpenSSH手册。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/37624.html