← [ BACK_TO_NOTES ]

OCI 控制台连接 CLI 踩坑

用 OCI CLI 在 Cloud Shell 创建并使用串口控制台连接时的若干具体报错与绕过方法。

#debug #growing #ops #oracle-cloud #ssh #server

[!info] 定位 本文记录用 CLI 走串口控制台时的具体坑。完整恢复流程见 使用控制台连接恢复 OCI 实例。

OCI 控制台连接 CLI 踩坑

坑 1:compartment list 查不到实例所在 compartment

oci iam compartment list 默认不列根 compartment(即 tenancy 本身)。若实例直接建在 tenancy 根下,用该命令找不到 compartment-id。

绕过:直接用 tenancy OCID 作为 compartment-id,或从控制台实例详情页「一般信息 → OCID」点复制按钮拿实例 OCID(最快)。

坑 2:参数名是 —ssh-public-key-file

创建控制台连接时上传公钥的参数是 --ssh-public-key-file,不是 --public-key-file,后者报 No such option:

oci compute instance-console-connection create \
  --instance-id <OCID> \
  --ssh-public-key-file ~/.ssh/id_rsa.pub

坑 3:ssh-rsa 算法与新版 OpenSSH 不兼容

连接控制台时报 Permission denied (publickey),-v 日志里有关键一行:

debug1: send_pubkey_test: no mutual signature algorithm

原因:InstanceConsoleSSHD 用 ssh-rsa(SHA-1)签名,而新版 OpenSSH(8.8+)默认禁用。需要在命令里重新启用。注意参数名随版本不同:

  • 新版 OpenSSH:-o PubkeyAcceptedAlgorithms=+ssh-rsa
  • 老版 OpenSSH(如 Cloud Shell 的 8.0):-o PubkeyAcceptedKeyTypes=+ssh-rsa(用新参数名会报 Bad configuration option)
ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostKeyAlgorithms=+ssh-rsa \
  -i ~/.ssh/id_rsa \
  -o ProxyCommand='ssh -W %h:%p -p 443 <console-connection-ocid>@instance-console.<region>.oci.oraclecloud.com' \
  ubuntu@<instance-ocid>

坑 4:串口控制台 OS 登录需要密码

SSH 认证通过后,串口把键盘输入直接送到实例的 ttyS0,出现的是操作系统 login 提示符。但 Oracle 的 Ubuntu 镜像默认 ubuntu 用户没有设置密码(仅 SSH key),所以 login: ubuntu 之后输任何密码都不对。

结论:串口控制台对无密码用户走不通。改用 VNC 控制台,或直接 oci compute instance action --action SOFTRESET 重启实例(可清掉 fail2ban 等非持久封禁)。

坑 5:Cloud Shell 粘贴多行命令丢续行符

Cloud Shell 终端粘贴带 \ 续行的多行命令时,换行符可能被吃掉,导致参数错位、报 Got unexpected extra argument。复杂 OCI 查询应拆成单行命令分步执行。

创建于 2026/7/21 更新于 2026/7/21
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本