通过执行 gridSetup.sh 配置 19c grid infrastructure 的时候,在 SSH connectivity 步骤,发生如下错误:
[INS-06006] Passwordless SSH connectivity not set up between the following node(s): []
以上错误是无法被忽略的,因此 CRS 会安装失败。
但 SSH 的配置是成功的,并且 ssh
Linux 下 OpenSSH 版本被升级到 8.x。
注意:OpenSSH 在不同的 OS 平台,可能会有不同的行为,例如在 AIX 平台,OpenSSH 7.5 有这个问题,在 SLES Linux 12 SP4上,OpenSSH_7.2p2 有这个问题。
查看 OpenSSH 版本:
# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2r 26 Feb 2019
如下的命令在 OpenSSH 8.0 上可能会产生与上面相同的错误:
请注意文件名中的双引号包含单引号。
# scp -p :"'/tmp/test.txt'" /tmp/test.txt
protocol error: filename does not match request
以上错误可以通过在命令中添加 -T 选项来避免:
# scp -T -p :"'/tmp/test.txt'" /tmp/test.txt
test.txt 100% 2 0.1KB/s 00:00
为了降低 (CVE-2019-6111) 的风险,OpenSSH 8.0 增加了客户端检查,检查从服务器发送的文件名是否与命令行请求匹配,如果客户端和服务器通配符扩展存在差异,那么客户端可能会拒绝来自服务器的文件。由于这个原因,OpenSSH 8.0 为 scp 提供了一个新的 -T 选项,它将禁用这些客户端检查。
在执行 gridSetup.sh 安装之前,使用 root 用户进行以下修改:
注意:根据实际情况中 scp 命令的路径进行修改。
将原来的 scp 命令改名:
mv /usr/bin/scp /usr/bin/scp.orig
创建一个新的scp文件 ,如 /usr/bin/scp:
vi /usr/bin/scp
在新创建的文件 /usr/bin/scp 中添加如下行:
/usr/bin/scp.orig -T $*
修改文件权限:
chmod 555 /usr/bin/scp
集群安装完成后:
mv /usr/bin/scp.orig /usr/bin/scp