scp

安全的远程文件复制程序


语法格式

scp [-1246BCpqrv] [-c cipher] [-F ssh-conf] [-i idfile] [-l limit] [-o ssh-opts]
[-P port] [-S program] [[user@]host1:]files [[user@]host2:]file-or-dir

命令简介

利用scp命令,可以在网络主机之间复制文件。scp采用OpenSSH的认证方法,利用ssh实现数据的传输,因而具有同等的安全保障。当使用scp命令复制文件时,如果需要交互认证,远程系统首先会要求用户提供密码或密码短语。经过认证之后,文件复制才会开始。如果OpenSSH设置了无密码的注册方式,可以省略交互认证过程。

在上述语法格式中,user是用户名,host1host2是主机名,files是一个或一组文件的路径名,file-or-dir是单个文件或目录。如果任何一个主机是本地系统,主机名与用户名均可省略,只需提供正常的文件路径名即可。如果两个主机都是远程系统(即在两个远程主机之间复制文件),主机名与用户名都不能省略。如果文件路径名之前含有用户名与主机,表示以指定的用户身份,从远程主机复制文件,或把文件复制到远程主机。

注意,把源文件复制到目的文件时,scp通常不会保护已存在的目的文件。如果目的文件已经存在,scp会覆盖目的文件,代之以源文件的内容。如果目的文件不存在,scp首先会使用指定的目的文件名创建一个空文件,然后再使用源文件的内容填充新建的空文件。

命令选项

-1  强制scp使用OpenSSH协议第1版。

-2  强制scp使用OpenSSH协议第2版。

-4  强制scp仅用IPv4地址。

-6  强制scp仅用IPv6地址。

-B  采用批处理方式(禁止提示用户输入密码或密码短语)。

-C  启用压缩方式(把“-C”选项传递给ssh命令,通过ssh命令实现压缩)。

-c cipher  选择加密传输数据时使用的密码。这个选项指定的密码可以直接传递给ssh。

-F ssh-conf  指定基于用户的ssh配置文件,直接传递给ssh命令。

-i idfile  指定一个密钥文件,以便能够使用其中的私钥与远程系统进行认证。这个选项指定的密钥文件可以直接传递给ssh。

-l limit  以Kbps为单位,指定传输速度,限制使用的带宽。

-o ssh-opts  采用ssh_config配置文件的格式(如“-o Port=24”),向ssh传递指定的选项。当scp命令没有单独的选项能够指定ssh选项时,“-o”选项是非常有用的。完整的ssh选项详见ssh_config配置文件手册页的说明。

-P port  指定连接远程主机的端口。

-p  保持原始文件的最近修改时间、最近访问时间和模式字段等。

-q  安静方式。禁止显示传输进度以及ssh给出的警告与诊断信息等。

-r  递归地复制整个目录。注意,在递归复制文件期间,如果遇到符号链接文件,scp将会采用符号链接文件引用的文件,或进入其引用的目录。

-S program  指定处理加密连接的程序。指定的程序必须能够处理ssh选项。

-v  显示scp命令(包括ssh命令)的处理过程与调试信息,有助于诊断连接、认证与配置等问题。

应用实例

1. 把iscas系统中的文件复制到当前目录。

$ scp gqxing@iscas:/etc/profile .
gqxing@iscas’s password: 
profile                                       100% 1459     1.4KB/s   00:00
$

2. 把当前目录中的文件复制到iscas系统(如果实现了无密码注册,复制文件时无须提供密码)。

$ scp ./getfile gqxing@iscas:/home/gqxing
getfile                                       100%   68     0.1KB/s   00:00
$

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z