This post is also available in:
Durante a execução do runcluvfy.sh ou da instalação do Oracle Grid Infrastructure, o seguinte erro pode aparecer:
PRVG-2002 : Encountered error in copying file "/etc/resolv.conf"
from node "node1" to node "node2"
protocol error: filename does not match request
PRVG-2002 : Encountered error in copying file "/etc/nsswitch.conf"
from node "node1" to node "node2"
protocol error: filename does not match request
O erro impede que o CVU valide a configuração de DNS e Name Service entre os nós. O detalhe revelador é a mensagem “protocol error: filename does not match request” — ela indica que o problema não é do Oracle, mas do SCP do sistema operacional.
Neste artigo, vou explicar a causa raiz, por que isso afeta especificamente RHEL 8, OL 8, Rocky Linux 8 e distribuições com OpenSSH 8.0+, e apresentar tanto o workaround rápido quanto a solução definitiva.
💡 Na prática: Encontrei esse erro em um ambiente RHEL 8 durante a instalação do Grid Infrastructure 19c. A solução do MOS (Doc ID 2761745.1) mencionava apenas Oracle Solaris, mas o mesmo fix funciona em Linux — o problema é do OpenSSH, não do sistema operacional.
Por Que o Erro PRVG-2002 Ocorre
O Cluster Verification Utility (CVU) usa o comando scp internamente para copiar arquivos entre nós durante as validações. O CVU constrói os comandos scp com aspas simples envolvendo o caminho do arquivo remoto:
scp -p node2:'/etc/resolv.conf' /tmp/local_copyO problema com OpenSSH 8.0+
A partir do OpenSSH 8.0 (lançado em abril de 2019), o scp ganhou uma verificação de segurança adicional: ele valida que o nome do arquivo enviado pelo servidor remoto corresponde exatamente ao que foi solicitado.
Quando o CVU envia o caminho com aspas simples, o novo scp interpreta de forma diferente e rejeita a cópia com a mensagem:
protocol error: filename does not match requestA flag -T do scp desabilita essa verificação de nome de arquivo, resolvendo o conflito.
Distribuições afetadas
Qualquer distribuição com OpenSSH 8.0 ou superior:
- RHEL 8 / Oracle Linux 8 (OpenSSH 8.0p1)
- RHEL 9 / Oracle Linux 9 (OpenSSH 8.7p1+)
- Rocky Linux 8/9
- AlmaLinux 8/9
- CentOS 8
Para verificar sua versão:
ssh -VDiagnóstico
Antes de corrigir, confirme que o problema é realmente do SCP.
Testar o SCP entre nós manualmente
scp -p node2:'/etc/resolv.conf' /tmp/test_resolv.conf
scp -T -p node2:'/etc/resolv.conf' /tmp/test_resolv.confSe o primeiro falhar com “protocol error” e o segundo funcionar, é confirmado — o problema é da verificação de filename do OpenSSH 8.0+.
Verificar a versão do OpenSSH
ssh -V
rpm -qa | grep opensshSolução 1: Wrapper do SCP com flag -T (Workaround Rápido)
Esta solução substitui temporariamente o binário scp por um wrapper script que adiciona a flag -T automaticamente.
Aplicar em TODOS os nós (como root)
cp -p /usr/bin/scp /usr/bin/scp.orig
echo '#!/bin/bash' > /usr/bin/scp
echo '/usr/bin/scp.orig -T "$@"' >> /usr/bin/scp
chmod 755 /usr/bin/scp
cat /usr/bin/scp
Conteúdo esperado do wrapper:
#!/bin/bash
/usr/bin/scp.orig -T "$@"Validar
scp -p node2:/etc/resolv.conf /tmp/test_resolv.conf
./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose | grep -i "resolv\|nsswitch\|PRVG-2002"
Resultado esperado:
Verifying resolv.conf Integrity ...PASSED
Verifying DNS/NIS name service ...PASSED⚠ Importante: Reverta o workaround após a instalação do Grid Infrastructure.
Reverter após a instalação
mv /usr/bin/scp.orig /usr/bin/scpRiscos do workaround
- Substituir binários do sistema pode gerar alertas em auditorias de segurança
- Atualizações de pacote (
yum update openssh) podem sobrescrever o wrapper - Ferramentas de compliance (AIDE, Tripwire, OSSEC) podem reportar a alteração
- Nunca deixe o wrapper permanentemente — reverta sempre após a instalação
Solução 2: Instalar com Release Update (Recomendado para Produção)
A Oracle corrigiu o CVU em Release Updates posteriores para lidar com o OpenSSH 8.0+. Aplicar um RU durante a instalação elimina o problema sem alterar o scp do sistema.
Instalar com -applyRU
mv $GRID_HOME/OPatch $GRID_HOME/OPatch.bkp
unzip p6880880_190000_Linux-x86-64.zip -d $GRID_HOME/
cd $GRID_HOME
./gridSetup.sh -applyRU /u01/stage/<RU_PATCH_NUMBER>
O instalador aplica o RU durante a instalação, e o CVU atualizado já sabe lidar com o scp do OpenSSH 8.0+.
Nota: Use sempre o RU mais recente disponível. Quanto mais novo, mais correções incluídas.
Solução 3: Aplicar Patch Específico do CVU
Se você não pode aplicar um RU completo, existe um patch one-off que corrige apenas o CVU:
- MOS Patch 30159782 — Corrige o comportamento do CVU com OpenSSH 8.0+
cd $GRID_HOME/OPatch
./opatch apply /u01/stage/30159782/
Consulte o MOS Doc ID 2555697.1 para detalhes sobre esse patch.Checklist Rápido de Diagnóstico
ssh -V
scp -p node2:/etc/resolv.conf /tmp/test_resolv.conf
scp -T -p node2:/etc/resolv.conf /tmp/test_resolv.conf
file /usr/bin/scp
cat /usr/bin/scp
./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose | grep -i "resolv\|nsswitch\|PRVG-2002"
Conclusão
O erro PRVG-2002 com “protocol error: filename does not match request” é causado por uma incompatibilidade entre o CVU do Oracle e o SCP do OpenSSH 8.0+ — não é um problema de rede, SSH ou permissões.
O diagnóstico é direto:
- Verificar a versão do OpenSSH — se for 8.0+, o ambiente é afetado
- Testar o SCP manualmente — com e sem flag
-T - Aplicar a correção adequada:
- Lab/urgência: wrapper do SCP com flag
-T(reverter após instalação) - Produção: instalar com
-applyRUou aplicar patch 30159782 - Validar com o
runcluvfy.sh
O ponto mais importante: sempre reverta o workaround do SCP após a instalação do Grid. Alterações em binários do sistema não devem ser permanentes.
Referências:
– MOS Doc ID 2761745.1 — PRVG-2002 Encountered Error in Copying File
– MOS Doc ID 2555697.1 — INS-06006 GI RunInstaller Fails If OpenSSH Is Upgraded to 8.x
– OpenSSH 8.0 Release Notes — SCP filename validation
