scp 拷贝远端文件失败

正常使用 ssh 连接远端是可以的,如:

# dev 为远端 .ssh/config 配置
$ ssh dev
Last login: Thu Nov 24 15:23:10 2016 from 192.168.xx.xx
Welcome

但是使用指令scp远端文件却显示错误:

$ scp dev:ssh.zip ./
Welcome
# 并没有将文件 cp 下来

查了一下发现,scp 的过程是先隐藏使用 ssh 登录到远端,然后再执行 cp 的操作,上面的 “Welcom” 是在 ssh 登录时 shell startup script(比如 profile , bashrc)自动执行过程中产生的内容输出,当我在 .bashrc 中找到这句 echo "Welcome" 注释掉后再执行 scp 顺利的将文件 拷贝了下来,由此推测:
scp / sftp 会把这些 echo 的内容也传回来,并认作协议包的一部分进行解析,导致解析错误,最终导致文件拷贝失败。
所以使用 scp 指令时,ssh 登录不能出现 echo 输出。

    原文作者:乾九二
    原文地址: https://www.jianshu.com/p/58efba68411b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞