Ubuntu 如何开启 Root 用户 SSH 登录

Ubuntu 如何开启 Root 用户 SSH 登录


前言

在使用 Ubuntu 服务器时,默认情况下 root 用户是无法直接通过 SSH 登录的。这是出于安全考虑的默认设置。但在某些场景下(如本地开发环境、内网服务器等),我们需要开启 root 用户的 SSH 登录权限。本文将手把手带你完成配置。

⚠️ 安全警告: 在生产环境中,不建议直接开放 root SSH 登录。推荐使用普通用户登录后通过 sudo 提权,或采用密钥认证方式替代密码登录。


环境说明

  • 系统:Ubuntu 20.04 / 22.04 / 24.04
  • 需要具备 sudo 权限的普通用户账号

步骤一:设置 Root 密码

如果你从未设置过 root 密码,需要先执行以下命令:

复制代码
sudo passwd root

按提示输入并确认新密码即可。


步骤二:修改 SSH 配置文件

使用编辑器打开 SSH 的主配置文件:

bash 复制代码
sudo nano /etc/ssh/sshd_config

在文件中找到 PermitRootLogin 这一行(默认可能被注释掉),将其修改为:

bash 复制代码
PermitRootLogin yes

💡 提示: 如果该行以 # 开头,需要先去掉 # 号再修改值。

保存并退出编辑器(nano 中按 Ctrl+O 保存,Ctrl+X 退出)。


步骤三:重启 SSH 服务

修改配置后,需要重启 SSH 服务使配置生效:

bash 复制代码
# Ubuntu 22.04 及以上
sudo systemctl restart ssh

# 通用方式
sudo service ssh restart

步骤四:验证配置是否生效

执行以下命令确认配置已生效:

perl 复制代码
sudo sshd -T | grep permitrootlogin

若输出结果为:

bash 复制代码
permitrootlogin yes

则说明配置成功。


PermitRootLogin 参数说明

参数值 说明
yes 允许 root 用户通过密码或密钥登录
prohibit-password 仅允许密钥方式登录(默认值,推荐)
forced-commands-only 仅允许执行特定命令
no 完全禁止 root 用户 SSH 登录

更安全的替代方案:密钥登录

如果你的目的是方便管理,强烈建议使用 SSH 密钥认证 而不是密码登录:

第一步: 将配置保持为仅允许密钥登录:

复制代码
PermitRootLogin prohibit-password

第二步: 将本地公钥添加到服务器:

bash 复制代码
# 将本地公钥复制到服务器 root 用户
ssh-copy-id root@your_server_ip

# 或手动追加
cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys

第三步: 禁用密码登录(可选,进一步加强安全):

perl 复制代码
# 在 sshd_config 中设置
PasswordAuthentication no

常见问题

Q:修改后仍然无法登录怎么办?

检查防火墙是否开放了 22 端口:

lua 复制代码
sudo ufw status
sudo ufw allow ssh

Q:如何查看 SSH 登录日志?

bash 复制代码
sudo journalctl -u ssh -n 50
# 或
sudo tail -f /var/log/auth.log

Q:如何修改 SSH 默认端口?

sshd_config 中修改 Port 22 为其他端口号,可有效减少暴力破解风险。


总结

| 步骤 | 命令 |
|------------|----------------------------------|------------------------|
| 设置 root 密码 | sudo passwd root |
| 编辑配置文件 | sudo nano /etc/ssh/sshd_config |
| 修改配置项 | PermitRootLogin yes |
| 重启 SSH 服务 | sudo systemctl restart ssh |
| 验证配置 | `sudo sshd -T | grep permitrootlogin` |

配置完成后,即可使用 ssh root@your_server_ip 直接以 root 身份登录服务器。再次提醒,在生产环境中请优先使用密钥认证,避免使用密码登录,保障服务器安全。

相关推荐
闲云野鹤在人间3 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
亚川楼宇自控系统数据中心厂家3 小时前
IBMS 集成如何打通数据中心的子系统数据孤
运维
蓝速科技3 小时前
桌面双屏翻译机量产调试:三类场景兼容性破局方案丨蓝速科技
运维·数据库·人工智能·科技·技术分享
见闻小天地3 小时前
脱硫脱硝塔选变频器避坑指南:四方DL500变频器使用体验分享
大数据·运维·人工智能·业界资讯
吴声子夜歌4 小时前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
wdfk_prog5 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
吴声子夜歌5 小时前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
Huangjin007_6 小时前
【Linux 系统篇(二十一)】进程(九):进程等待 wait/waitpid、status状态参数
linux·运维·服务器
螺蛳粉 螺蛳粉6 小时前
mysql的备份与恢复
linux·运维·数据库·mysql
可乐鸡翅yeah_6 小时前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8