核心结论先看:报错 INS-06006 的真正原因并非 SSH 通信失败,而是 Oracle 安装程序在高版本 OpenSSH 8.x 环境下调用 scp 命令时遇到的兼容性误判。许多人手工执行 ssh node date 能够正常返回,但安装器校验依然无法通过,根源就在这里。

为什么 ssh rac2 date 已经成功,仍无法绕过 INS-06006?
Oracle 安装器(gridSetup.sh 或 OUI)在校验阶段所做的工作远比执行一条 ssh 命令复杂。它会隐式地使用 scp 传输校验文件,同时验证 known_hosts 的一致性,并检查环境变量(如 HOME、SSH_AUTH_SOCK)是否与图形会话的上下文匹配。常见的瓶颈主要集中在以下几点:
- OpenSSH 8.0+ 版本默认启用了针对 CVE-2019-6111 的安全保护,该机制会拒绝服务端返回的“非精确匹配”文件名(例如带引号或空格的情况),而 Oracle 内部的
scp调用方式恰好触发了此限制。 - OUI 通常运行在 VNC 或 X11 图形会话中,其
HOME环境变量可能指向错误的路径(比如/root),导致它无法读取/home/grid/.ssh/id_rsa密钥文件。 - 节点自连是强制要求:
ssh $(hostname)和ssh localhost都必须互通,且/etc/hosts中本机 hostname 对应的行必须包含该节点的所有 IP 地址(公有、私有、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.orig echo '/usr/bin/scp.orig -T "$@"' > /usr/bin/scp chmod 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目录权限必须为700;id_rsa文件为600;authorized_keys文件为644。如果 VNC 启动的 OUI 继承了错误的HOME环境变量,它会将known_hosts写入/root/.ssh/目录,导致后续校验找不到正确的密钥。- 不要跳过
cvuqdisk包的安装和udev规则的配置。虽然 CVU 检查可能通过,但 OUI 内部依赖这些信息判断节点可达性,跳过它们可能埋下隐患。 - 如果使用 VNC 进行安装,建议改用
xauth配合 X11 转发,或者直接使用物理终端。MOS Doc ID 2070270.1 明确指出,VNC 环境会放大环境变量不一致的问题,增加排查难度。
