1、基本原理
scp 是 secure copy 的缩写, 是基于 SSH(Secure Shell)协议的安全文件传输命令。它使用加密的连接,确保在传输文件的过程中数据的安全性,其工作方式类似于cp(复制文件)命令,但用于在不同主机之间复制文件。
2、基础用法
指定用户名,执行命令后需要再输入目标主机的密码。
1.1、单个文件
# 语法
scp 源文件 目标主机用户名@目标主机IP:目标主机文件夹
# 示例
scp test.zip gis@127.0.0.1:/gis/target/scpfiles
1.2、文件夹
-r: 递归复制整个目录。
# 示例
scp -r testdir gis@127.0.0.1:/gis/target/scpfiles
3、修改名称
# 传输后的文件名由`0.png`改为`001.png`
scp 0.png gis@127.0.0.1:/gis/target/scpfiles/001.png
# 传输后的文件夹由`images`改为`images001`
scp -r images/ gis@127.0.0.1:/gis/target/scpfiles/images001
4、保留源文件信息
-p:保留原文件的修改时间,访问时间和访问权限。增加该配置,传输后的文件会保持源文件的相关信息;
scp -p 0.png gis@127.0.0.1:/gis/target/scpfiles/001.png
5、反向传输
上面介绍的是从本机向其他机器传输的方式,该命令也可以实现将其他主机的文件复制到本主机;
# 将远程主机的test.txt复制到当前文件夹
scp gis@127.0.0.1:/gis/test.txt .
6、其他参数说明
- -1: 强制scp命令使用协议ssh1
- -2: 强制scp命令使用协议ssh2
- -4: 强制scp命令只使用IPv4寻址
- -6: 强制scp命令只使用IPv6寻址
- -B: 使用批处理模式(传输过程中不询问传输口令或短语)
- -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- -p:保留原文件的修改时间,访问时间和访问权限。
- -q: 不显示传输进度条。
- -r: 递归复制整个目录。
- -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
- -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
- -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
- -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
- -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
- -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
- -P port:注意是大写的P, port是指定数据传输用到的端口号
- -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。