INS-06006报错主因是Oracle安装器在OpenSSH 8.x+下调用scp触发CVE-2019-6111防护而失败,且图形会话中$HOME错配致密钥读取异常;手动ssh成功不等于OUI验证通过。

Oracle 19c RAC 安装时 SSH 互信失败,绝大多数情况不是密钥没配好,而是安装器(gridSetup.sh)在 OpenSSH 8.x+ 环境下调用 scp 时被安全策略拦截,或图形会话中环境变量(尤其是 $HOME)错配导致读不到密钥——手动 ssh node date 全部成功也照样报 INS-06006。
为什么 ssh 成功但 INS-06006 仍报错
Oracle 安装器验证互信时,不只跑 ssh,还会隐式调用 scp 传校验文件,并检查 known_hosts 写入位置、环境变量一致性。OpenSSH 8.0+ 默认启用 CVE-2019-6111 防护,当服务端返回的文件名与请求不完全匹配(如含空格、引号),scp 直接退出非零码,OUI 就判失败。同时,VNC/X11 图形会话启动的 OUI 常继承错误的 $HOME(比如指向 /root 或空值),导致它去 /root/.ssh/id_rsa 找私钥,自然失败。
-
ps -ef | grep gridSetup.sh查父进程 PID,再用cat /proc/<pid>/environ | tr '\0' '\n' | grep HOME</pid>确认 OUI 实际看到的$HOME - 对比终端里
echo $HOME和上面结果是否一致;不一致就说明图形会话污染了环境 - 运行
su - grid -c "ssh -o StrictHostKeyChecking=no rac2 date"模拟 OUI 行为,观察~/.ssh/known_hosts是否生成、归属是否为grid、权限是否为644
必须用 rsa-2048 密钥且权限严格
Oracle 19c GI 部分完全不识别 ed25519 密钥(OpenSSH 8.0+ 默认类型),ssh-copy-id 会静默失败或报 no mutual signature algorithm。哪怕你用 ed25519 手动配通了,OUI 内部校验仍过不去。
- 显式生成 RSA 2048:
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N "" -
~/.ssh目录权限必须是700,属主为grid:oinstall(或oracle:oinstall) -
id_rsa权限必须是600,id_rsa.pub和authorized_keys必须是644 - 用户家目录本身权限也要是
700(如/home/grid权限为775会导致 SSH 拒绝加载密钥)
绕过 scp 格式解析失败的临时方案
这是目前最快速有效的应急手段,适用于 RHEL 8.3、AlmaLinux 8/9、SLES 15 等默认带 OpenSSH 8.x 的系统。原理是用 -T 参数关闭伪终端和文件名校验,让 scp 回归旧版行为。
- 以 root 登录所有节点,执行:
mv /usr/bin/scp /usr/bin/scp.orig - 新建
/usr/bin/scp,内容仅一行:#!/bin/bash /usr/bin/scp.orig -T "$@" chmod 555 /usr/bin/scp- 安装完成后必须立即还原:
mv /usr/bin/scp.orig /usr/bin/scp,否则影响其他依赖scp的工具
验证必须覆盖全部 4 种连接组合
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(public、private、VIP、SCAN)
最容易被忽略的是节点自连和 /etc/hosts 解析一致性——自连走错网卡或命中 DNS 缓存,就会让 OUI 认为“本地无法免密登录自己”,直接卡死。


















