scp 命令的应用
引言
scp(secure copy) 是一个命令行工具,用于在两台机器间平安的传输文件和目录。安全性保障是因为文件和明码在传输时都会加密。能够跨零碎,但倡议传输的两台机器操作系统一样。
一. 基于 IP, 用户名, 和明码的文件传输
信息流能够是以下模式中的任意一种:
本地机器到近程机器;近程机器到本地机器;两个近程机器间 (本地机器上操作)
命令应用语法
命令应用的根本格局:
scp [OPTION] UserName@Source_Host:file1 UserName@Destination_Host:file2
要害:文件从前一个对象传输到后一个对象。
[OPTION] 参数如下:
-P 指明近程机器的 ssh 端口。-p 保留原文件的批改工夫,拜访工夫和拜访权限。-q 不显示传输进度条 (传输的过程信息:如传输速度)
-C 运行压缩数据
-r 复制目录时应用 (recursive: 递归的)
命令应用阐明
scp 命令的应用时,数据的传输依赖于 ssh,因而要提供密钥和明码以在近程机器上认证。
复制文件时:必须要有对源文件的读权限和对指标文件的写权限。
若两个零碎中有同名同地位的文件,scp 命令会覆写文件而不抛出正告信息。
应用示例
-
传输一个本地文件到近程零碎
scp file.txt remote_username@10.10.0.2:/remote/directory #file.txt 不重命名 scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt #重命名为 newfilename.txt scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory #ssh 默认监听端口 22。若近程机器 ssh 监听的不是 22,则 - P 参数指明监听端口 scp -r /local/directory remote_username@10.10.0.2:/remote/directory #传输目录和传输文件相似,只需加一个 - r 参数。本地目录能够用相对路径。
file.txt 是要传输的本地文件;
remote_username@10.10.0.2 是近程机器的用户名和 IP
/remote/directory 是文件要放的近程机器的目录。若不指明此命令,则文件会放在近程机器的用户的家目录。
命令执行时,须要输出近程机器用户登录明码。 -
传输近程机器文件到本地机器
scp remote_username@10.10.0.2:/remote/file.txt /local/directory #将近程机器的 file.txt 文件复制到本地目录 /local/directory 下。本地目录须要指明。当前目录用. 示意。
-
在两个近程机器间传输文件
# 留神:以下命令不反对基于用户名,明码的形式传输。即 scp -3 user1@ip1:/files/file.txt user2@ip2:/files,再输出 scp -3 user1@host1.com:/files/file.txt user2@host1.com:/files #复制近程机器 host1.com 上的文件 file.txt 到近程机器 host1.com 的 /files 目录下。#- 3 选项使得数据传输通过本地机器,若无此选项,则数据间接在两个近程机器上传输。
能够从近程先用 ssh 近程登录到一台近程机器,再从此机器拷贝文件到另一台近程机器。
二. 基于密钥的传输
从近程到本地机器传输文件
scp -i id_rsa_path username@ip:/remote/file.txt /local/directory #- i 参数指明私钥 id_rsa 这个文件在本地的门路