如何通过云控制台重置甲骨文 Ubuntu 22.04 实例的 root 密码?

文章导读
Oracle Cloud 控制台不支持直接点击按钮重置 Linux 实例的 root 密码,需通过控制台内的「控制台连接」(Serial Console)功能进入系统内部修改。此方法适用于丢失 SSH 密钥或无法登录的场景,但需注意 Ubuntu 默认禁止 root 远程登录,修改密码后可能仍需调整 SSH 配置。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

Oracle Cloud 控制台不支持直接点击按钮重置 Linux 实例的 root 密码,需通过控制台内的「控制台连接」(Serial Console)功能进入系统内部修改。此方法适用于丢失 SSH 密钥或无法登录的场景,但需注意 Ubuntu 默认禁止 root 远程登录,修改密码后可能仍需调整 SSH 配置。

先说结论:甲骨文云没有 Linux 一键重置密码按钮,必须使用串口控制台进入系统手动修改。

  • 适合:SSH 密钥丢失、sudo 用户无法登录的紧急恢复场景
  • 先看:确认 IAM 用户拥有 INSTANCE_CONSOLE_CONNECT 权限
  • 建议:优先重置普通 sudo 用户密码,非必要不启用 root 远程登录

命令速用版

通过串口控制台登录实例后,在终端内执行以下命令重置密码并检查配置。

sudo passwd root

sudo systemctl restart ssh

sudo grep PermitRootLogin /etc/ssh/sshd_config

为什么会这样

甲骨文云出于安全考量,Linux 实例不提供控制台密码重置按钮,而是依赖 SSH 密钥对认证。Ubuntu 22.04 云镜像默认锁定 root 账户且禁止密码登录,因此即使重置了密码,若未修改 SSH 配置也无法远程连接 root。

分步处理

1. 在甲骨文云控制台进入实例详情页,选择「资源」下的「控制台连接」,点击「创建控制台连接」。

2. 上传本地 SSH 公钥用于连接串口,创建完成后复制提供的 SSH 连接命令。

3. 在本地终端运行连接命令进入串口控制台,看到登录提示符后按回车进入系统 shell。

4. 执行sudo passwd root设置新密码,若需允许 root 远程登录,编辑/etc/ssh/sshd_configPermitRootLogin改为yes

如何通过云控制台重置甲骨文 Ubuntu 22.04 实例的 root 密码?

5. 保存文件后执行sudo systemctl restart ssh重启服务,退出串口连接。

怎么验证是否生效

使用 SSH 客户端尝试连接:ssh root@实例公网 IP。若提示输入密码且能进入系统,说明重置成功。若仍提示 Permission denied,检查/var/log/auth.log日志确认是否被 SSH 配置拦截。

常见坑

1. 权限不足:创建控制台连接需要 IAM 策略授权,否则按钮不可用或连接被拒绝。

2. 配置无效:仅修改密码不修改sshd_config,root 依然无法通过 SSH 登录。

3. 键盘布局:串口控制台有时键盘映射异常,输入密码时注意大小写和特殊字符。

常见问题

甲骨文云控制台有重置密码按钮吗?

Linux 实例没有直接的重置密码按钮,Windows 实例支持通过控制台获取初始密码,Linux 需通过串口控制台手动修改。

重置密码后为什么还是连不上?

Ubuntu 默认禁止 root 远程登录,需检查/etc/ssh/sshd_configPermitRootLogin是否设置为yesprohibit-password

串口连接需要停止实例吗?

不需要,串口控制台支持在实例运行状态下连接,但操作敏感命令时仍建议在业务低峰期进行。

参考来源

Oracle Help Center: Connecting to an Instance Using a Serial Console (https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/serialconsole.htm)

Ubuntu Community Help: RootAccount (https://help.ubuntu.com/community/RootSudo)