scp命令报“bash: scp: command not found lost connection”解决办法

在进行scp时报bash: scp: command not found
[root@51ou.com add_admin]# scp ocp_admin_privileges.mysql root@10.10.1.128:/root
root@10.10.1.128's password:
bash: scp: command not found
lost connection

查看本机是否安装openssh-clients软件包

[root@51ou.com add_admin]# rpm -q openssh-clients

如果没有我们需要安装

所有机器我都是最小化安装,所以很多组件没装也是情理之中,所以用yum装一下scp:

yum -y install openssh-clients

装完后,继续执行之前的命令,结果出现如下错误:

[root@cache-ns-4 etc]# scp redis.conf root@192.168.17.125:/usr/local/redis/etc/
root@192.168.17.125's password:
bash: scp: command not found
lost connection
[root@cache-ns-4 etc]# whereis scp
scp: /usr/bin/scp /usr/share/man/man1/scp.1.gz

我擦,这就诡异了!明明装了为毛提示不存在呢? 而且还提示输入密码了,用whereis也能找到scp,没办法从man中找到一个DEBUG参数 -v,于是如下增加 -v 参数执行试试:

[root@cache-ns-4 etc]# /usr/bin/scp -v  redis.conf root@192.168.17.125:/usr/local/redis/etc/
Executing: program /usr/bin/ssh host 192.168.17.125, user root, command scp -v -t /usr/local/redis/etc/
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
******此处省略数行******
root@192.168.17.125's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
#关键信息来了,这边将scp命令send到对方,对方提示scp没找到,原因水落石出!
debug1: Sending command: scp -v -t /usr/local/redis/etc/
bash: scp: command not found
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 1624, received 2096 bytes, in 0.2 seconds
Bytes per second: sent 9088.1, received 11729.5
debug1: Exit status 127
lost connection
[root@cache-ns-4 etc]#

原来是因为目标主机也没装scp,倒是我大意了!登陆后再次执行如下命令安装scp:

yum -y install openssh-clients

回到之前的服务器上,执行最初的命令,果然毫无意外成功了:

[root@cache-ns-4 etc]# /usr/bin/scp  redis.conf root@192.168.17.125:/usr/local/redis/etc/
root@192.168.17.125's password:
redis.conf                                                                                        100%   35KB  35.3KB/s   00:00
[root@cache-ns-4 etc]#

网站搜索这个故障,大部分经验都是告知要安装scp,然后给出一个 yum 在线安装 scp 的命令。实际上,明明已经提示要输入密码了,说明 scp 是正常安装的!还继续报找不到命令,我们就只能从 scp 的执行过程来分析了,因此就借助到了scp的debug参数(-v),很清楚的看到了整个执行过程,从而得知真正的原因是对方主机没有安装scp,而且还可以清楚的看到 scp 的工作流程。

时间: 2024-11-10 08:27:44

scp命令报“bash: scp: command not found lost connection”解决办法的相关文章

CentOS下root 重启服务报bash: service: command not found错误

yezee用户ssh到服务器,然后su到root用户,准备重启iptables服务 使用service命令重启iptables服务: [root@www sysconfig]# service iptables restart 结果报bash: service: command not found 错误. 纳闷了,还没有service命令?然后网上搜索了下,国外一个论坛有解释: http://www.linuxquestions.org/questions/linux-newbie-8/serv

1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project

 使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题:   1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-XX:MaxPermSize=768m-Xms1024m-Xmx3072m搜索   二:修改window->preferences --- > JAVA->Edittor->Hovers,将右侧所有复选框清空.   2.因为eclipse上一次未正常关闭,导致启动卡死,错误日志为:

java报错java/lang/NoClassDefFoundError: java/lang/Object解决办法

理报错:java/lang/NoClassDefFoundError: java/lang/Object   操作系统环境:CentOS6.0 2.6.32-220.el6.x86_64 JDK版本环境:jdk1.5.0_22 操作系统原来安装的是jdk1.6,后来开发人员要求java程序使用jdk1.5版本的.帮开发下载JDK1.5, 安装完JDK ,设定环境变量后出现这个错误:  代码如下 复制代码 [root@fztest97 lib]# javac Error occurred duri

Mysql 报错PID file could not be found!解决办法

今天想把之前在cetnos6上编译安装的mariadb改下PATH环境变量,操作几次之后,关闭或重启mysql就失败了,提示如下: [root@web1 ~]# service mysqld stop MySQL server PID file could not be found!                  [FAILED] google了下,解决方案如下: 查看一下进程: [root@web1 ~]# ps aux |grep mysq* mysql     16058  0.2 1

【技术贴】鼠标右键盘符属性报错Volume filter WMI not found的解决办法

想查看一下盘符的属性,看看还剩多少空间,以前没事的,现在报错 Volume filter WMI not found 看了看提示窗口是supercache搞的,就拿出360,在软件管家里面搜索supercache之后删除之,就没事了.

请教大神 我这个错误是怎么回事啊?加上jsp-api.jar报一个错误,不加报另一个错误,在线跪求解决办法啊

问题描述 不加报这个错误加上报这个错误 解决方案 解决方案二:求大神速度来啊解决方案三:版本冲突第一个说你的某些Annotation没有定义第二个错误里standard-1.1.2.jar没有包含TLD,你去换一个包解决方案四:首先你得PageContext对象找不到,看看你是否引入包,或者是有没有这么类其次,你得tld文件找不到,看看你是否加入到了classpath中去,如果没有,加入试一试,如果加入了,还是出现这个问题,换一个包试一试呢!解决方案五:引用2楼holzkoepfer的回复: 版

apache启动报错:the requested operation has failed解决办法_Linux

原因一:80端口占用 例如IIS,另外就是迅雷.我的apache服务器就是被迅雷害得无法启用! 原因二:软件冲突 装了某些软件会使apache无法启动如Dr.com 你打开网络连接->TcpIp属性->高级->WINS标签 把netbios的lmhosts对勾去掉,禁用tcp/ip的netbios. 然后再启动应该就可以了. 原因三:httpd.conf配置错误 如果apache的配置文件httpd.conf搞错了,在windows里启动它,会提示the requested operat

我的Android进阶之旅------>报 error: Apostrophe not preceded by \ 的错误解决办法

     今天对项目进行国际化翻译的时候控制台出现了以下的错误: res/values/strings.xml:100: error: Apostrophe not preceded by \ (in Sorry, video doesn't support this format.)      这样错误的原因是因为strings.xml文件里有一个string标签中的字符串含有'(单引号),我们只要在'之前加\进行转义就可以解决这个错误.       比如说 <string name="

Apache启动报错No space left on device: AH00023解决办法

对于这类错误是因为linux系统的ipc信号量造成的,apache启动时,会创建很多子进程.他们是通过信号量来和子进程进行通信的. 信号量介绍: 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信.本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况:共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制.通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写.在Linux系统下 ,常用的方式