关于scp:文件传输

6次阅读

共计 1519 个字符,预计需要花费 4 分钟才能阅读完成。

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 命令会覆写文件而不抛出正告信息。

应用示例

  1. 传输一个本地文件到近程零碎

    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 是文件要放的近程机器的目录。若不指明此命令,则文件会放在近程机器的用户的家目录。
    命令执行时,须要输出近程机器用户登录明码。

  2. 传输近程机器文件到本地机器

    scp remote_username@10.10.0.2:/remote/file.txt /local/directory #将近程机器的 file.txt 文件复制到本地目录 /local/directory 下。本地目录须要指明。当前目录用. 示意。
  3. 在两个近程机器间传输文件

    # 留神:以下命令不反对基于用户名,明码的形式传输。即 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 这个文件在本地的门路 
正文完
 0