Error when using scp command "bash: scp: command not found"

ScpOpensshRhel

Scp Problem Overview


I want to use scp command to copy a local file to remote server, but I get an error message after input the password of user in remote server.

~]$ scp gitadmin.pub git@123.150.207.18:
git@123.150.207.18's password: 
bash: scp: command not found
lost connection

I checked on server using the git user and it seems the scp command can be found and openssh-clinets were installed too.

git@... ~]$ scp
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
git@... ~]$ su root
......
root@... ~]# yum info openssh-clients
Loaded plugins: product-id, subscription-manager
Updating Red Hat repositories.
Installed Packages
Name        : openssh-clients
Arch        : x86_64
Version     : 5.3p1
Release     : 52.el6
Size        : 1.0 M
Repo        : installed
From repo   : anaconda-RedHatEnterpriseLinux-201105101844.x86_64
Summary     : An open source SSH client applications
URL         : http://www.openssh.com/portable.html
License     : BSD
Description : OpenSSH is a free version of SSH (Secure SHell), a program for
            : logging into and executing commands on a remote machine. This
            : package includes the clients necessary to make encrypted
            : connections to SSH servers.

I'm confused for the situation. Did I missing some configuration on server? (We are using RHEL6 as server.)


It's my fault in path setting. I added 'custom.sh' in /etc/profile.d and added following lines in it to add /usr/local/node/bin directory to PATH.

export PATH="/usr/local/node/bin:$PATH" 

But the format is wrong. I removed the pair of '"' and it works OK now. It should be:

export PATH=$PATH:/usr/local/node/bin

A probe mistake...^_^

Scp Solutions


Solution 1 - Scp

Make sure the scp command is available on both sides - both on the client and on the server.

If this is Fedora or Red Hat Enterprise Linux and clones (CentOS), make sure this package is installed:

    yum -y install openssh-clients

If you work with Debian or Ubuntu and clones, install this package:

    apt-get install openssh-client

Again, you need to do this both on the server and the client, otherwise you can encounter "weird" error messages on your client: scp: command not found or similar although you have it locally. This already confused thousands of people, I guess :)

Solution 2 - Scp

Issue is with remote server, can you login to the remote server and check if "scp" works

probable causes:

  • scp is not in path
  • openssh client not installed correctly

for more details http://www.linuxquestions.org/questions/linux-newbie-8/bash-scp-command-not-found-920513/

Solution 3 - Scp

Check if scp is installed or not on from where you want want to copy check using which scp

If it's already installed, it will print you a path like /usr/bin/scp Else, install scp using:

yum -y install openssh-clients

Then copy command

scp -r root@192.168.1.1:/var/www/html/database_backup/restore_fullbackup/backup_20140308-023002.sql  /var/www/html/db_bkp/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRivers YangView Question on Stackoverflow
Solution 1 - ScplzapView Answer on Stackoverflow
Solution 2 - ScpMehul RathodView Answer on Stackoverflow
Solution 3 - ScpSanjay eduteksView Answer on Stackoverflow