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.txtscp -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这个文件在本地的门路