概述

在ssh命令中内置了一种叫scp 的命令,用来在服务器之间安全传输文件。

scp 是安全拷贝协议 Secure Copy Protocol的缩写,和众多 Linux/Unix 使用者所熟知的拷贝(cp)命令一样。

scp 的使用方式类似于 cp 命令,cp 命令将一个文件或文件夹从本地操作系统的一个位置(源)拷贝到目标位置(目的),而 scp 用来将文件或文件夹从网络上的一个主机拷贝到另一个主机当中去。


SCP命令的基本语法

#scp source_file_name username@destination_host:destination_folder
  • 1

可以解读为:用“username account”“拷贝 source file name”到“destination host”上的“destination folder”里


scp 可选参数

 -B      采取批量模式(避免询问密码或口令)-C      启用压缩。通过指明 -C 参数来开启压缩模式。-c 加密方式选择在传输过程中用来加密的加密方式 这个选项会被直接传递到 ssh(1)。-F ssh 配置给 ssh 指定一个用来替代默认配置的配置文件。这个选项会被直接传递到 ssh(1)。-l 限速限制命令使用的带宽,默认单位是 Kbit/s。-P 端口指定需要的连接的远程主机的端口。  注意,这个选项使用的是一个大写的“P”,因为小写的“-p”已经用来保留目标文件的时间和模式相关信息。(LCTT 译注:ssh 命令中使用小写的“-p”来指定目标端口。)-p      保留文件原来的修改时间,访问时间以及权限模式。-q      静默模式:不显示来自 ssh(1) 命令的进度信息,警告和诊断信息。-r      递归拷贝整个目录。注意,scp 命令在树形遍历的时候同样会跟随符号连接,复制所连接的文件。-v      详细模式。scp 和 ssh(1) 将会打印出处理过程中的调试信息。这可以帮助你调试连接、认证和配置方面的问题。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

详细模式

利用 scp 命令的 -v 选项,你可以得到认证、调试等的相关细节信息。

不带参数的基本SCP命令会在后台拷贝文件,除非操作完成或者有错误出现,否则用户在界面上是看不到任何提示信息的。你可以用“-v”参数来在屏幕上打印出调试信息,这能帮助你调试连接、认证和配置的一些问题。

当我们使用 -v 选项的时候,一个简单的输出如下所示:

[root@localhost ~]# scp -v abc.txt admin@10.0.0.6:/home/admin
Executing: program /usr/bin/ssh host 10.0.0.6, user admin,
command scp -v -t/home/admin
OpenSSH_7.1p1, OpenSSL 1.0.2d-fips 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Connecting to 10.0.0.6 [10.0.0.6] port 22.
debug1: Connection established.
debug1: Server host key: ssh-rsa SHA256:LqBzkeGa6K9BfWWKgcKlQoE0u+gjorX0lPLx5YftX1Y
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
admin@10.0.0.6's password:
debug1: Authentication succeeded (password).
Authenticated to 10.0.0.6 ([10.0.0.6]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending command: scp -v -t /home/admin
Sending file modes: C0644 174 abc.txt
Sink: C0644 174 abc.txt
abc.txt                                                                                                                               100%  174     0.2KB/s   00:00
Transferred: sent 3024, received 2584 bytes, in 0.3 seconds
Bytes per second: sent 9863.3, received 8428.1
debug1: Exit status 0
[root@localhost ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

递归拷贝文件和文件夹

有时我们需要拷贝文件夹及其内部的所有文件/子文件夹,我们如果能用一条命令解决问题那就更好了。SCP用“-r”参数就能做到。


静默模式

如果你想要关闭进度信息以及警告和诊断信息,你可以通过使用scp命令中的-q选项.

上一次我们仅仅使用 -r 参数,它显示了逐个文件的信息,但这一次当我们使用了 -q 参数,它就不显示进度信息。


指定端口

scp 使用 ssh 命令来在两个主机之间传输文件,因为 ssh 默认使用的是22端口号,所以 scp 也使用相同的22端口号。

如果我们希望改变这个端口号,我们可以使用 -P(大写的 P,因为小写的 p 用来保持文件的访问时间等)选项来指定所需的端口号。

举个例子,如果我们想要使用2046端口号,我们可以使用如下的命令

[root@localhost ~]# scp -P 2046 abcd1 root@10.10.16.137:/root/
  • 1

限制命令使用的带宽,指定的单位是 Kbit/s

如果你为了拷贝很多文件而去执行了一份自动化脚本又不希望带宽被SCP进程耗尽,那这个参数会非常管用。

限制命令使用的带宽,指定的单位是 Kbit/s

如下所示,我们可以使用 -l 参数来指定 scp 命令所使用的带宽,在此我们将速度限制为512kbit/s。


从源文件获取修改时间、访问时间和模式

“-p”参数会帮到把预计的时间和连接速度会显示在屏幕上。

scp 的 -p 选项来保留目标文件的更新时间,访问时间和权限模式。

 #scp -p xgj.tar entel@192.x.x.x:.
  • 1

开启压缩

有一个参数能让传输文件更快,就是“-C”参数,它的作用是不停压缩所传输的文件。它特别之处在于压缩是在网络传输中进行,当文件传到目标服务器时,它会变回压缩之前的原始大小。

-C 可以通过开启 scp 命令的压缩模式来节省传输过程中的带宽和时间。

有一点我们需要注意,这个压缩的方法不是适用于所有文件。当源文件已经被压缩过了,那就没办法再压缩很多了。诸如那些像.zip,.rar,pictures和.iso的文件,用“-C”参数就没什么意义。

#scp -Cpv messages.log entel@192.x.x.x:.
  • 1

选择其它加密算法来加密文件

SCP默认是用“AES-128”加密算法来加密传输的。如果你想要改用其它加密算法来加密传输,你可以用“-c”参数。

 $ scp -c 3des xgj.tar entel@192.x.x.x:.
  • 1

上述命令是告诉SCP用3des algorithm来加密文件。要注意这个参数是“-c”(小写)而不是“-C“(大写)

Linux-scp安全拷贝协议相关推荐

  1. linux scp拷文件夹,linux scp远程拷贝文件及文件夹

    linux scp远程拷贝文件及文件夹 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/root目录下 复制代码 代码如下: scp -r ...

  2. linux scp移动文件夹,linux scp远程拷贝文件及文件夹

    [http://www.jb51.net/LINUXjishu/73131.html] 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/ro ...

  3. linux scp ssh拷贝文件,linux-远程拷贝文件之scp

    简介 scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证. scp只要通过sshd服务进行通讯,而且要求两端都有sc ...

  4. suse linux scp 只拷贝文件不拷贝目录测试赘述说明

    一.基本命令 scp    源文件    目的地 二.测试场景:只想拷贝文件,不改变目录结构,需加一个斜杠和点: a1.本地用于存放的目录 /tmp/1809 a2.远程机器上的若干文件,在下面目录里 ...

  5. linux scp远程拷贝文件及文件夹

    参考连接:https://blog.csdn.net/ye1992/article/details/48293557

  6. linux中使用scp远程拷贝文件及文件夹

    linux中使用scp远程拷贝文件及文件夹 linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/roo ...

  7. linux scp 过滤文件夹,linux中使用scp远程拷贝文件及文件夹

    linux中使用scp远程拷贝文件及文件夹 linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/roo ...

  8. linux 远程文件拷贝

    linux scp 远程拷贝文件及文件夹 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/root目录下 代码如下: scp -r /hom ...

  9. linux shell scp 远程拷贝 上传下载

    目录 简介 命令格式 命令功能 命令参数 使用实例 实例1:从远处复制文件到本地目录 实例2:从远处复制到本地 实例3:上传本地文件到远程机器指定目录 实例4:上传本地目录到远程机器指定目录 简介 s ...

  10. linux scp命令参数及用法详解--linux远程复制拷贝命令使用实例【转】

    转自:http://blog.csdn.net/jiangkai_nju/article/details/7338177 一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法,一是 ...

最新文章

  1. 【计算机网络】传输层 : 总结 ( TCP / UDP 协议 | 寻址与端口 | UDP 协议 | TCP 协议特点 | TCP 连接释放 | TCP 流量控制 | TCP 拥塞控制 ) ★★★
  2. python拆分列表元素_Python将列表拆分为一个元素 - python
  3. 关于FragmentPager实现Fragment的滑动切换
  4. react hoc_如何使用HOC模式开发React超能力
  5. 智能机维修暴利大起底:触摸屏成本30维修300元
  6. 搭建LAMP架构之Apache2.4.4安装及管理
  7. System.IO.Ports.SerialPort串口通信接收完整数据
  8. 平面图判连通 蓝桥杯模拟赛题
  9. ArcGis 拓扑检查——狭长角锐角代码C#
  10. Poi-tl通过word模板生成文件页眉页脚冲突问题
  11. 从零配置腾讯云cdn加速服务!
  12. windows自带桌面远程控制
  13. 渗透测试-SQL注入之宽字节注入
  14. 如何在你的 wordpress 网站中添加搜索框
  15. 【2019.05.23】JS逆向——破解裁判文书网参数(vl5x,guid )爬虫 超级详细
  16. 经典题目3-应用的闪退通常是什么原因造成的?如果应用闪退,Android 和 iOS 上是分别怎么抓取日志的?
  17. c语言打造dnf游戏角色视频,主播DK:展示成果!打造20个武炼18个卢克C角色! - 地下城与勇士掌游宝...
  18. 【微信小程序】注册一个微信小程序
  19. android studio模拟器出错,A resource failed to call close
  20. 批量修改Excel单元格内某些文字的颜色

热门文章

  1. Scratch(三十八):八大行星
  2. 民科微服务电脑版下载_民科微服务电子注册护士个人端下载-民科微服务医师电子注册app最新版 v2.4_爱下手机站...
  3. android 刷recovery,安卓手机怎么刷入Recovery 命令行刷入Recovery教程
  4. 概率论考点之排列与组合
  5. php如何实时显示弹幕,斗鱼弹幕 PHP 实现
  6. 计算机网络拨号,自动拨号上网的设置方法【图解】
  7. kubernetes CRI接口
  8. asuswrt 单臂路由_Padavan(老毛子) 最简单臂路由组网 VLAN 设置
  9. 旋转图像 顺时针与逆时针方法
  10. GC是什么? 为什么要有GC?