使用scp命令时出现错误 "bash: scp: command not found"。

71

我想使用scp命令将本地文件复制到远程服务器,但在输入远程服务器用户密码后,我收到了一个错误消息。

~]$ scp gitadmin.pub git@123.150.207.18:
git@123.150.207.18's password: 
bash: scp: command not found
lost connection
我使用git用户检查了服务器,看起来scp命令可以找到并且openssh-clinets也已安装。
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.

我对这种情况感到困惑。是我错过了服务器上的某些配置吗?(我们使用的是RHEL6作为服务器。)


路径设置是我的问题。 我将“custom.sh”添加到“/etc/profile.d”中,并添加了以下行以将“/usr/local/node/bin”目录添加到PATH中。

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

但是格式不对。我移除了一对引号 '"' ,现在它可以正常工作了。正确的格式应该是:

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

一个探针错误可能会导致整个系统崩溃。^_^


答案可能在这里:https://superuser.com/a/291425/934576 - quant2016
3个回答

135

确保scp命令在双方- 客户端和服务器上都可用。

如果这是FedoraRed Hat Enterprise Linux和克隆版(CentOS),请确保安装了此软件包:

    yum -y install openssh-clients

如果您使用 DebianUbuntu 及其克隆版,请安装此软件包:

    apt-get install openssh-client

你需要在服务器和客户端上都进行此操作,否则你可能会在客户端遇到“奇怪”的错误消息,例如scp: command not found,即使本地已经安装了该命令。我猜这已经让成千上万的人感到困惑了 :)


6

正如我在问题中发布的那样,scp命令似乎可以在服务器端运行,并且已安装openssh客户端。这就是为什么这变得如此奇怪的原因。还有其他想法吗? - Rivers Yang
谢谢Mehul。是我在使用'custom.sh'文件设置路径的时候犯了错误。 - Rivers Yang
对我来说,scp已经在路径中了,但是由于某些原因"/bin"却不在路径中。这就是问题所在。 - James O'Brien

5

检查您要从哪里复制的计算机上是否安装了scp命令,可以使用which scp命令进行检查。

如果已经安装,则会打印出类似于/usr/bin/scp的路径。 否则,请使用以下命令安装scp:

yum -y install openssh-clients

然后复制命令
scp -r root@192.168.1.1:/var/www/html/database_backup/restore_fullbackup/backup_20140308-023002.sql  /var/www/html/db_bkp/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接