如何解决Oracle 19c安装INS-06006报错_通过配置SSH免密登录解决

作者:袖梨 2026-07-15
INS-06006是Oracle安装器在OpenSSH 8.x+下调用scp失败导致的误判;因新版scp默认启用CVE-2019-6111防护,拒绝非精确匹配文件名,而OUI内部scp调用恰好触发该限制,且验证需覆盖双向ssh、节点自连及环境变量一致性。

ins-06006 不是 ssh 没通,而是 oracle 安装器在 openssh 8.x+ 环境下调用 scp 失败导致的误判;手动 ssh node date 成功 ≠ 安装器验证通过。

为什么 ssh rac2 date 成功却仍报 INS-06006

Oracle 安装器(gridSetup.sh 或 OUI)在验证阶段不只跑 ssh,还会隐式调用 scp 传校验文件,并检查 known_hosts 一致性、环境变量(如 HOMESSH_AUTH_SOCK)是否匹配图形会话上下文。常见卡点包括:

  • scp 在 OpenSSH 8.0+ 中默认启用 CVE-2019-6111 防护,拒绝服务端返回的“非精确匹配”文件名(如含引号、空格),而 Oracle 内部调用恰好触发此行为
  • OUI 运行在 VNC/X11 图形会话中,其 HOME 可能指向 /root 或错误路径,导致读不到 /home/grid/.ssh/id_rsa
  • 节点自连被强制要求:ssh $(hostname)ssh localhost 必须都通,且 /etc/hosts 中 hostname 行必须包含本机所有 IP(public、private、VIP、SCAN)

OpenSSH 8.x 下绕过 scp 校验的临时方案

这是目前最快速有效的应急手段,适用于 RHEL 8.3、SLES 15、AlmaLinux 8/9 等系统,原理是用 -T 参数禁用 scp 的文件名校验(OpenSSH 官方支持的兼容开关):

  • root 登录所有节点,执行:
    mv /usr/bin/scp /usr/bin/scp.origecho '/usr/bin/scp.orig -T "$@"' > /usr/bin/scpchmod 555 /usr/bin/scp
  • 确保所有节点都完成替换,再运行 gridSetup.sh
  • 安装完成后务必还原:
    mv /usr/bin/scp.orig /usr/bin/scp

验证时必须覆盖的 4 种连接组合

仅配置 ssh rac1 → rac2 不够,OUI 明确检查以下全部:

  • ssh rac1 rac2 date(A 到 B)
  • ssh rac2 rac1 date(B 到 A)
  • ssh rac1 $(hostname) date(A 自连,hostname 必须解析为本机某 IP)
  • ssh rac2 $(hostname) date(B 自连,同理)

验证命令请统一用完整主机名(非 IP),并确认 /etc/hosts 中每台机器的 hostname 行包含其所有网络接口 IP,否则自连可能走错网卡或命中 DNS 缓存。

容易被忽略的关键细节

多数人修复了 scp 却仍失败,往往栽在这几个地方:

  • grid 用户的 .ssh 目录权限必须是 700id_rsa600authorized_keys644;VNC 启动的 OUI 若继承了错误 HOME,会写入 /root/.ssh/known_hosts,导致后续校验找不到 key
  • 不要跳过 cvuqdisk 包安装和 udev 规则配置——CVU 检查虽通过,但 OUI 内部依赖它做节点可达性判断
  • 如果用 VNC 安装,建议改用 xauth + X11 转发或直接物理终端;MOS Doc ID 2070270.1 明确指出 VNC 会放大环境变量不一致问题

相关文章

精彩推荐