scp命令介绍scp(securecopy)是一个命令行工具,用于在两台机器之间安全地传输文件和目录。由于文件和密码在传输过程中被加密,因此安全性得到保证。可以跨系统,但建议要转移的两台机器的操作系统相同。1、基于IP、用户名、密码的文件传输信息流可以是以下任意一种模式:本地机到远程机;远程机器到本地机器;两台远程机器之间(在本地机器上操作)命令使用语法命令使用的基本格式:scp[OPTION]UserName@Source_Host:file1UserName@Destination_Host:file2Key:文件从上一个对象传输到下一个对象。[OPTION]参数如下:-P指定远程机器的ssh端口。-p保留原文件的修改时间、访问时间和访问权限。-q不显示传输进度条(传输过程信息:如传输速度)-C运行压缩数据-r复制目录时使用(recursive:递归)命令使用说明使用scp命令时,数据传输依赖ssh,因此,提供密钥和密码以在远程计算机上进行身份验证。复制文件时:必须对源文件有读权限,对目标文件有写权限。如果两个系统中存在具有相同名称和位置的文件,scp命令将覆盖这些文件而不会抛出警告消息。使用示例将本地文件传输到远程系统scpfile.txtremote_username@10.10.0.2:/remote/directory#file.txt不会重命名scpfile.txtremote_username@10.10.0.2:/remote/directory/newfilename。txt#reload命名为newfilename.txtscp-P2322file.txtremote_username@10.10.0.2:/remote/directory#ssh默认监听22端口。如果远程机器ssh不是监听22,那么-P参数表示监听端口scp-r/local/directoryremote_username@10.10.0.2:/remote/directory#传输目录和传输文件类似,只需要加上一个-r参数。本地目录可以使用相对路径。file.txt为要传输的本地文件;remote_username@10.10.0.2为远程机器的用户名,IP/remote/directory为远程机器放置文件的目录。如果未指定此命令,则文件将放置在远程计算机的用户主目录中。执行该命令时,需要输入远程机器用户的登录密码。将远程机器文件传输到本地机器scpremote_username@10.10.0.2:/remote/file.txt/local/directory#将远程机器的file.txt文件复制到本地目录/local/directory。需要指定本地目录。当前目录用.在两台远程机器之间传输文件#注意:以下命令不支持基于用户名和密码的传输。即scp-3user1@ip1:/files/file.txtuser2@ip2:/files,然后输入scp-3user1@host1.com:/files/file.txtuser2@host1.com:/files#将host1.com上的远程机器文件file.txt复制到远程机器host1.com的/files目录下。#-3选项使数据传输通过本地机器。如果没有这个选项,数据将直接在两台远程机器之间传输。您可以使用ssh远程登录到远程机器,然后将文件从这台机器复制到另一台远程机器。2.基于密钥的传输远程到本地机器传输文件scp-iid_rsa_pathusername@ip:/remote/file.txt/local/directory#-i参数表示私钥id_rsa文件的本地路径
