This post is also available in:
While running runcluvfy.sh or installing Oracle Grid Infrastructure, you may encounter the following error:
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
This error prevents the CVU from validating DNS and Name Service configuration between nodes. The revealing detail is the message “protocol error: filename does not match request” — it indicates the problem is not with Oracle, but with the operating system’s SCP.
In this article, I’ll explain the root cause, why this specifically affects RHEL 8, OL 8, Rocky Linux 8 and distributions with OpenSSH 8.0+, and walk through both the quick workaround and the definitive solution.
💡 In practice: I encountered this error in a RHEL 8 environment during Grid Infrastructure 19c installation. The MOS solution (Doc ID 2761745.1) mentioned only Oracle Solaris, but the same fix works on Linux — the issue is with OpenSSH, not the operating system.
Why the PRVG-2002 Error Occurs
The Cluster Verification Utility (CVU) uses the scp command internally to copy files between nodes during validation checks. The CVU builds scp commands with single quotes around the remote file path:
scp -p node2:'/etc/resolv.conf' /tmp/local_copyThe problem with OpenSSH 8.0+
Starting with OpenSSH 8.0 (released April 2019), scp gained an additional security check: it validates that the filename sent by the remote server matches exactly what was requested.
When the CVU sends the path with single quotes, the new scp interprets it differently and rejects the copy with the message:
protocol error: filename does not match requestThe -T flag for scp disables this filename verification, resolving the conflict.
Affected distributions
Any distribution with OpenSSH 8.0 or later:
- 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
To check your version:
ssh -VDiagnosis
Before fixing, confirm the issue is actually with SCP.
Test SCP between nodes manually
scp -p node2:'/etc/resolv.conf' /tmp/test_resolv.conf
scp -T -p node2:'/etc/resolv.conf' /tmp/test_resolv.confIf the first fails with “protocol error” and the second works, it’s confirmed — the problem is OpenSSH 8.0+’s filename validation.
Check OpenSSH version
ssh -V
rpm -qa | grep opensshSolution 1: SCP Wrapper with -T Flag (Quick Workaround)
This solution temporarily replaces the scp binary with a wrapper script that automatically adds the -T flag.
Apply on ALL nodes (as 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/scpExpected wrapper content:
#!/bin/bash
/usr/bin/scp.orig -T "$@"Validate
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"
Expected result:
Verifying resolv.conf Integrity ...PASSED
Verifying DNS/NIS name service ...PASSED⚠ Important: Revert the workaround after Grid Infrastructure installation.
Revert after installation
mv /usr/bin/scp.orig /usr/bin/scpWorkaround risks
- Replacing system binaries can trigger security audit alerts
- Package updates (
yum update openssh) can overwrite the wrapper - Compliance tools (AIDE, Tripwire, OSSEC) may report the change
- Never leave the wrapper permanently — always revert after installation
Solution 2: Install with Release Update (Recommended for Production)
Oracle fixed the CVU in later Release Updates to handle OpenSSH 8.0+. Applying an RU during installation eliminates the problem without modifying the system’s scp.
Install with -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>The installer applies the RU during installation, and the updated CVU knows how to handle OpenSSH 8.0+’s scp.
Note: Always use the most recent available RU. The newer it is, the more fixes are included.
Solution 3: Apply CVU-Specific Patch
If you can’t apply a full RU, there’s a one-off patch that fixes only the CVU:
- MOS Patch 30159782 — Fixes CVU behavior with OpenSSH 8.0+
cd $GRID_HOME/OPatch
./opatch apply /u01/stage/30159782/See MOS Doc ID 2555697.1 for details on this patch.
Quick Diagnostic Checklist
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"
Conclusion
The PRVG-2002 error with “protocol error: filename does not match request” is caused by an incompatibility between Oracle’s CVU and OpenSSH 8.0+’s SCP — it’s not a network, SSH, or permissions issue.
The diagnosis is straightforward:
- Check OpenSSH version — if it’s 8.0+, the environment is affected
- Test SCP manually — with and without the
-Tflag - Apply the appropriate fix:
- Lab/urgency: SCP wrapper with
-Tflag (revert after installation) - Production: install with
-applyRUor apply patch 30159782 - Validate with
runcluvfy.sh
The most important point: always revert the SCP workaround after Grid installation. System binary modifications should never be permanent.
References:
– 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
