# 如何使用SCP命令进行文件传输

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/18695.html | 发布：2023-03-21 | 更新：2023-03-21 | 分类：IDC云库

SCP（安全复制协议）是一种网络文件传输协议，可以在远程系统和本地主机或两个远程位置之间轻松安全地传输文件。

SCP（安全复制协议）是一种网络文件传输协议，可以在远程系统和本地主机或两个远程位置之间轻松安全地传输文件。它使用安全外壳 (SSH) 机制为您的数据和凭据提供身份验证和加密功能。

 

![如何使用SCP命令进行文件传输](https://www.mfisp.com/wp-content/uploads/2022/01/2022012405435744.png)

 

管理员使用 SCP Linux 命令来简化 Linux 服务器之间的数据传输过程，因为它不需要任何登录到服务器。此外，它提供比文件传输协议(FTP) 更好的安全性，并且符合 PCI 安全委员会标准。

 

在本文中，您将了解如何在远程主机（例如VPS）上使用 SCP 命令。我们将分解基本的 SCP 命令并提供示例，以帮助您更好地理解 Linux 命令的工作原理。

 

## 了解 SCP SSH 命令语法

 

在两个远程系统之间执行文件传输的 SCP 命令的基本语法如下所示：

 

```
scp [其他选项] [源用户名@IP]:/[目录和文件名] [目的用户名@IP]:/[目的目录]
```

 

这是命令的细分：

 
 
- [其他选项] ‒ 可以添加到 SCP 命令的修饰符。我们稍后会介绍最受欢迎的。 
- [source username@IP] ‒ 托管目标文件的计算机的用户名和 IP。 
- :/ ‒ 通知 SCP 命令用户将在源目录中键入。 
- [目录和文件名] ‒ 文件的位置和名称。 
- [目标用户名@IP] ‒ 目标系统的用户名和 IP。 
- [目标目录] ‒ 将保存文件的目标目录。 

 

以下示例显示了真实场景中的 SCP 命令：

 

```
scp -p root@162.168.1.1:/media/scp.png hostinger@162.168.1.2:/desktop/destination
```

 

如果您要复制到本地主机或从本地主机复制，则不需要 IP 地址和目标或源路径，如/desktop/folder_name。

 

#### 专家提示

 

使用 -r 选项递归复制整个目录。

 

## 使用 SCP 命令复制文件

 

SCP 最好的一点是它可以让您在两个远程主机或远程机器与本地系统之间安全地传输文件。以下部分将介绍 SCP 命令如何用于每种类型的传输。

 

重要的！无论您使用 SCP 执行何种类型的传输，您都不应该通过 SSH 连接到远程服务器。

 

### 从本地服务器复制到远程主机

 

我们会将本地文件scp.zip复制到名为root的远程服务器。服务器的 IP 地址位于用户名之后。

 

```
scp /users/Hostinger/desktop/scp.zip root@191.162.0.2:/writing/article
```

 

如果您没有设置自动 SSH 客户端确认，系统将提示您输入远程计算机的用户密码并查看进度表。它将如下所示：

 

```
root@191.162.0.2的密码：
novel3.zip 100% 0 0.0KB/s 00:00
```

  

假设远程服务器设置为在默认 SSH 端口 22 以外的端口上侦听 SSH 连接。在这种情况下，您必须使用 -P 选项指定该端口。

 

```
scp -P 2322 /users/Hostinger/desktop/scp.zip root@191.162.0.2:/writing/article
```

 

如果您还想在传输操作期间更改文件的名称，那么您的命令将如下所示（如果您不使用默认端口，请添加–P后跟适当的端口号）：

 

```
scp /users/Hostinger/desktop/scp.zip root@191.162.0.2:/writing/article/howtoscp.zip
```

 

使用 -r选项后跟相同的命令行来复制具有多个文件或子目录的目录。

 

```
scp -r /users/Hostinger/desktop root@191.162.0.2:/writing/article
```

 

#### 专家提示

 

要查找目录的完整路径，请导航到适当的目录并使用 pwd SSH 命令（打印工作目录）。

 

### 将远程文件传输到本地计算机

 

颠倒命令的源系统和目标系统必须反映在语法中。这一次，我们将从同一台远程主机复制scp.zip文件到我们的本地计算机。

 

```
scp root@191.162.0.2:/writing/articles/SCP.zip Users/Hostinger/Desktop
```

 

执行此命令将提示需要密码的相同 SSH 登录输出。仅当 sudo 权限已禁用身份验证或强制 SSH 客户端在您的计算机上使用私钥时，它才会出现。

 

### 在远程主机之间安全地移动文件

 

要将文件从一台远程服务器复制到另一台，您必须在终端中运行以下命令后输入两个帐户的密码：

 

```
scp root@191.162.0.2:/writing/article/scp.zip hostinger@11.10.0.1:/publishing
```

 

上面的命令将源文件/writing/article/scp.zip从第一台主机复制到第二台主机。要复制文件夹，请使用-r选项并指定文件夹路径而不是其中的文件。

 

在正常情况下，文件会直接从第一台远程服务器发送到第二台。但是，如果您想通过您的机器重新路由操作，请添加-3选项，如以下命令所示：

 

```
scp -3 root@191.162.0.2:/writing/article/scp.zip hostinger@11.10.0.1:/publishing
```

 

## 使用带选项的 SCP 命令

 

上面的例子有几个修改命令的 SCP 选项。有许多单字符形式的常用选项(-o) 及其描述性等效项 (–option)。

 

例如，-q参数提示系统以安静模式运行操作。它禁用进度表输出以及警告和诊断消息。使用-v参数启用详细输出以便于调试：

 

```
scp -v /users/Hostinger/desktop/scp.zip root@191.162.0.2
```

 

-4和-6选项确定使用的协议版本，即IPv4或IPv6。您还可以使用 address-family 关键字更全面地配置 IP 地址要求。

 

```
scp -6 root@191.162.0.2:/users/Hostinger/desktop/scp.zip
```

 

-p选项保留源文件中的修改、访问时间和模式。

 

```
scp -p /users/Hostinger/desktop/scp.zip root@191.162.0.2
```

  

使用-stat选项检查复制文件的详细信息，例如创建日期和文件大小。

 

-C选项在传输操作发生时启用大文件或目录的数据压缩。请记住，此选项不适用于压缩文件，例如.zip和.rar档案。

 

```
scp -C 文件夹 root@191.162.0.2
```

 

不要与-C混淆，-c选项可让您指定客户端应使用的加密算法。您可以输入的一些值是“ aes256-ctr ”、“ aes256-cbc ”和“ 3des-cbc ”。shell 配置中的默认选项是“ AnyStdCipher ”。

 

```
scp -c 3des-cbc /users/Hostinger/desktop/scp.zip root@191.162.0.2
```

 

重要的！使用 SCP 选项时要小心，因为它们区分大小写。

 

## 结论

 

安全复制协议使得在网络上的多个远程系统之间传输文件变得更加容易。它使您可以安全地将文件从一台远程主机复制到另一台，而无需通过加密连接登录。此外，这种远程文件传输方法使用安全外壳对您的数据进行加密，确保传输信息的机密性。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
