scp
SCP,代表 安全复制(Secure Copy),它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。
使用 scp
命令,你可以安全地复制文件或目录:
- 从本地到远程系统
- 从远程系统到本地
- 在两个远程系统之间
使用 scp
命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,作恶者也无法获得任何有意义的数据。
SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。
scp 协议已经过时了,它不灵活且不易修复。我们建议使用更现代的协议,如
sftp
和rsync
来代替。
用法
scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
例子
scp <options> SourceFile User@RemoteHost:RemotePath
scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory
scp <options> User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath
参数
-C:启用压缩。C 代表 压缩(Compression)。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。
-c <cipher>:c 代表 加密(Cipher)。默认情况下,SCP 使用 AES-128 加密方法对数据进行加密。你可以使用 -c 参数更改加密方法。
-i <identity_file>:i 代表 身份(Identity) 文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。
-l limit:l 代表 限制(Limit) 带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 Kbit/s。
-F <ssh_config>:有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 -F 参数使用不同的 ssh_config文件(File)。
-P port:P 代表 端口(Port)。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 -P 参数显示指定新端口号。
-p:如果希望 保留(Preserve) 原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。
-r:递归(Recursively) 复制整个目录。
-B:B 代表 批处理(Batch) 模式。它用于在传输文件时选择批处理模式。可以防止询问密码。
-S program:用于加密连接的 程序(Program) 名称。
-v:v 代表 详细(Verbose)。当使用 -v 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。
scp-copy-id
ssh-copy-id 使用本地可用的密钥授权登录远程计算机。
ssh-copy-id 可以把本地主机的公钥复制到远程主机的 authorized_keys 文件上。ssh-copy-id 也会给远程主机的用户主目录(home)和 ~/.ssh 和 ~/.ssh/authorized_keys 设置合适的权限。
ssh-copy-id [-n] [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname
ssh-copy-id -h | -?
参数
-i <identity_file> 指定认证文件(公钥)。
-f 强制模式。
-n 测试,不实际替换。
-p <port> 指定端口。
-o <ssh_option> 指定其他 ssh(1) 参数。
rsync
https://blog.51cto.com/u_15621957/8658511