

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用安全副本将文件传输到 Lightsail for Research 虚拟计算机
<a name="connect-using-scp"></a>

您可以使用安全复制 (SCP) 将文件从本地计算机传输到 Amazon Lightsail for Research 中的虚拟计算机。通过此过程，您可以一次传输多个文件或整个目录。

**注意**  
您还可以使用 Lightsail for Research 控制台中提供的基于浏览器的 Amazon DCV 客户端，与虚拟计算机建立远程显示协议连接。使用 Amazon DCV 客户端，您可以快速传输单个文件。有关更多信息，请参阅 [访问你的 Lightsail for Research 虚拟计算机的操作系统](access-computer-operating-system.md)。

**Topics**
+ [完成 先决条件](#connect-using-scp-prerequisites)
+ [使用 SCP 连接到虚拟计算机](#connect-virtual-computer-using-scp)

## 完成 先决条件
<a name="connect-using-scp-prerequisites"></a>

在开始之前，请满足以下先决条件。
+ 在 Lightsail 中创建一台用于研究的虚拟计算机。有关更多信息，请参阅 [创建 Lightsail for Research 虚拟计算机](create-computer.md)。
+ 确保您要连接的虚拟计算机处于运行状态。另外，记下虚拟计算机的名称和创建虚拟计算机所在的 AWS 区域。您在此过程的稍后部分将会需要此信息。有关更多信息，请参阅 [查看 Lightsail 研究版虚拟计算机详情](view-computer.md)。
+ 下载并安装 AWS Command Line Interface (AWS CLI)。有关更多信息，请参阅《AWS Command Line Interface 用户指南版本 2》**中的[安装或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。
+ 配置 AWS CLI 以访问您的 AWS 账户。有关更多信息，请参阅《AWS Command Line Interface 用户指南版本 2》**中的[配置基础知识](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)。
+ 下载并安装 jq。它是一个轻型且灵活的命令行 JSON 处理器，用于在以下过程中提取密钥对详细信息。有关下载和安装 jq 的更多信息，请参阅 *jq 网站*上的[下载 jq](https://stedolan.github.io/jq/download/)。
+ 确保您要连接的虚拟计算机上的端口 22 已打开。这是 SSH 使用的默认端口。该端口预设情况下打开。但是，如果您将其关闭，则必须先将其重新打开，然后才能继续使用。有关更多信息，请参阅 [管理 Lightsail for Research 虚拟机的防火墙端口](manage-ports.md)。
+ 为您的虚拟计算机获取 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [创建 Lightsail for Research 虚拟计算机](create-computer.md)。

## 使用 SCP 连接到虚拟计算机
<a name="connect-virtual-computer-using-scp"></a>

完成以下过程之一，使用 SCP 连接到 Lightsail for Research 中的虚拟计算机。

### 在 Windows 本地计算机上使用 SCP 连接到虚拟计算机
<a name="connect-using-scp-windows"></a>

如果您的本地计算机使用 Windows 操作系统，则适用此过程。此过程使用`get-instance` AWS CLI 命令获取您要连接的实例的用户名和公有 IP 地址。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-instance](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-instance.html)。

**重要**  
在开始此过程之前，请确保获得要连接的虚拟计算机的 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取 Lightsail for Research 虚拟计算机的密钥对](get-ssh-keys.md)。该过程将 Lightsail DKP 的私钥输出到一个`dkp_rsa`文件中，该文件用于以下命令之一。

1. 打开 Command Prompt (命令提示符窗口)。

1. 输入以下命令，以显示虚拟计算机的公有 IP 地址和用户名。在命令中，`{{region-code}}`替换为创建虚拟计算机的 AWS 区域的代码，例如`us-east-2`。将 `{{computer-name}}` 替换为要连接的虚拟计算机的名称。

   ```
   aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r ".instance.username" & aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r ".instance.publicIpAddress"
   ```

   **示例**

   ```
   aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r ".instance.username" & aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r ".instance.publicIpAddress"
   ```

   响应将显示虚拟计算机的用户名和公有 IP 地址，如以下示例所示。请记下这些值，因为在此过程的后续步骤中需要这些值。  
![虚拟计算机的用户名和公有 IP 地址。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-public-ip-address-and-user-windows.png)

1. 输入以下命令，与您的虚拟计算机建立 SCP 连接，并将文件传输到该虚拟计算机。

   ```
   scp -i dkp_rsa -r "{{source-folder}}" {{user-name}}@{{public-ip-address}}:{{destination-directory}}
   ```

   在该命令中，将：
   + `{{source-folder}}` 替换为本地计算机上包含要传输的文件的文件夹。
   + `{{user-name}}` 替换为来自此过程上一步的用户名（例如 `ubuntu`）。
   + `{{public-ip-address}}` 替换为来自此过程上一步的虚拟计算机的公有 IP 地址。
   + `{{destination-directory}}` 替换为您希望从其中复制文件的虚拟计算机上的目录路径。

   以下示例将所有文件从本地计算机上的 `C:\Files` 文件夹复制到远程虚拟计算机上的 `/home/lightsail-user/Uploads/` 目录中。

   ```
   scp -i dkp_rsa -r "{{C:\Files}}" {{ubuntu}}@{{192.0.2.0}}:{{/home/lightsail-user/Uploads/}}
   ```

   您应看到类似于以下示例的响应。它显示了从源文件夹传输到目标目录的每个文件。现在，您应能够访问虚拟计算机上的这些文件。  
![对 SCP 传输的响应。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-transfer-response-windows.png)

### 在 Linux、Unix 或 macOS 本地计算机上使用 SCP 连接到虚拟计算机
<a name="connect-using-scp-linux"></a>

如果您的本地计算机使用 Linux、Unix 或 macOS 操作系统，则适用此过程。此过程使用`get-instance` AWS CLI 命令获取您要连接的实例的用户名和公有 IP 地址。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-instance](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-instance.html)。

**重要**  
在开始此过程之前，请确保获得要连接的虚拟计算机的 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取 Lightsail for Research 虚拟计算机的密钥对](get-ssh-keys.md)。该过程将 Lightsail DKP 的私钥输出到一个`dkp_rsa`文件中，该文件用于以下命令之一。

1. 打开终端窗口。

1. 输入以下命令，以显示虚拟计算机的公有 IP 地址和用户名。在命令中，`{{region-code}}`替换为创建虚拟计算机的 AWS 区域的代码，例如`us-east-2`。将 `{{computer-name}}` 替换为要连接的虚拟计算机的名称。

   ```
   aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r '.instance.username' & aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r '.instance.publicIpAddress'
   ```

   **示例**

   ```
   aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r '.instance.username' & aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r '.instance.publicIpAddress'
   ```

   响应将显示虚拟计算机的用户名和公有 IP 地址，如以下示例所示。请记下这些值，因为在此过程的后续步骤中需要这些值。  
![虚拟计算机的用户名和公有 IP 地址。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-public-ip-address-and-user-linux.png)

1. 输入以下命令，与您的虚拟计算机建立 SCP 连接，并将文件传输到该虚拟计算机。

   ```
   scp -i dkp_rsa -r '{{source-folder}}' {{user-name}}@{{public-ip-address}}:{{destination-directory}}
   ```

   在该命令中，将：
   + `{{source-folder}}` 替换为本地计算机上包含要传输的文件的文件夹。
   + `{{user-name}}` 替换为来自此过程上一步的用户名（例如 `ubuntu`）。
   + `{{public-ip-address}}` 替换为来自此过程上一步的虚拟计算机的公有 IP 地址。
   + `{{destination-directory}}` 替换为您希望从其中复制文件的虚拟计算机上的目录路径。

   以下示例将所有文件从本地计算机上的 `C:\Files` 文件夹复制到远程虚拟计算机上的 `/home/lightsail-user/Uploads/` 目录中。

   ```
   scp -i dkp_rsa -r '{{Files}}' {{ubuntu}}@{{192.0.2.0}}:{{/home/lightsail-user/Uploads/}}
   ```

   您应看到类似于以下示例的响应。它显示了从源文件夹传输到目标目录的每个文件。现在，您应能够访问虚拟计算机上的这些文件。  
![对 SCP 传输的响应。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-transfer-response-linux.png)