Copy a file over SSH without SCP
June 30, 2023 Leave a comment
Problem:
/usr/bin/scp
binary was removed from the system. Which has caused the Oracle Patching process to fail.
scp
binary is provided by openssh-clients
rpm, which was present on the system, but scp
binary was missing.
Troubleshooting/Testing:
The workaround is to copy scp
binary from a similar healthy server (keep the same version). However, transferring a file to a location where it doesn’t exist can be a bit challenging. Let’s try:
[fg@rac1 ~]$ scp /usr/bin/scp racq:/tmp/scp bash: scp: command not found lost connection
We got lost connection
, because scp
is not on racq
node.
Solution:
Need to use ssh
and cat
commands. For most systems root
user login is not enabled, so you need to place the file under /tmp
and then relocate to the correct location.
In my example, I have already set up fg
user equivalency, so in my case, the format will be the following:
[fg@rac1 ~]$ ssh racq cat < /usr/bin/scp ">" /tmp/scp
Connect to the remote server and copy /tmp/scp
to the correct location. Reset permissions.
[root@racq tmp]# cp /tmp/scp /usr/bin/scp [root@racq tmp]# chmod 755 /usr/bin/scp [root@racq tmp]# chown root:root /usr/bin/scp
The transfer should be working now:
[fg@rac1 ~]$ scp /usr/bin/scp racq:/tmp/scp scp 100% 89KB 44.0MB/s 00:00
The process worked for a binary file, so it will work for a text file too.