

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Lightsail上使用 scp 在 Linux 執行個體之間傳輸檔案
<a name="amazon-lightsail-transfer-files-between-linux-instances"></a>

使用 Linux 中的安全複製 (scp) 命令，將檔案從本機電腦傳輸到 Linux 或 Unix 執行個體，以及從 中的一個執行個體傳輸到另一個執行個體Amazon Lightsail。若要進一步了解 scp 命令，請參閱 *man7* 網站上的 [scp(1) — Linux 手動頁面](https://man7.org/linux/man-pages/man1/scp.1.html)。

本教學課程會逐步解說將檔案從一個執行個體複製到另一個Lightsail執行個體的步驟。

**Topics**
+ [先決條件](#amazon-lightsail-copy-files-to-linux-instance-prerequisites)
+ [步驟 1：將私有金鑰 (.pem) 檔案儲存至本機電腦](#get-and-transfer-instance-ssh-key)
+ [步驟 2：變更私有金鑰的許可](#copy-private-key-change-permissions)
+ [步驟 3：將私有金鑰轉移到執行個體](#copy-private-key-to-instance)
+ [步驟 4：在 Lightsail Linux 和 Unix 執行個體之間安全地傳輸檔案](#transfer-files-between-instances-scp)

## 先決條件
<a name="amazon-lightsail-copy-files-to-linux-instance-prerequisites"></a>
+ 您有兩個Lightsail執行個體正在執行，其中兩個執行個體的公有 IP 地址為 。取得執行個體的公有 IP 地址。登入 [Lightsail主控台](https://lightsail.aws.amazon.com/)，然後複製執行個體旁顯示的公有 IP 地址。
+ 您可以使用 SSH 金鑰對存取這兩個執行個體。如需詳細資訊，請參閱[連接至 Linux 執行個體](lightsail-how-to-connect-to-your-instance-virtual-private-server.md)。

## 步驟 1：將私有金鑰 (.pem) 檔案儲存至本機電腦
<a name="get-and-transfer-instance-ssh-key"></a>

請完成下列步驟，將私有金鑰 (.pem) 檔案儲存至本機電腦。目標執行個體的私有金鑰檔案將用於安全地將檔案從一個執行個體傳輸到另一個執行個體。若要在相同 中的執行個體之間複製檔案 AWS 區域，您將使用該區域的預設金鑰。若要在不同區域中的執行個體之間複製檔案，您將針對目標執行個體所在的區域使用預設金鑰。若要進一步了解金鑰對，請參閱 [SSH 並連線至執行個體](understanding-ssh-in-amazon-lightsail.md)。

**注意**  
如果您使用的是自己的金鑰對，或您使用 Lightsail 主控台建立金鑰對，請尋找您自己的私有金鑰，並使用它來連接至執行個體。在您上傳自己的金鑰或使用 Lightsail 主控台建立金鑰對時，Lightsail 不會存放您的私有金鑰。您無法在沒有私有金鑰的情況下，使用 scp 將檔案傳輸至執行個體。

**將私有金鑰 (.pem) 儲存到您的本機電腦**

1. 登入 [Lightsail 主控台](https://lightsail.aws.amazon.com/)。

1. 在頂端導覽列中選擇您的**使用者名稱**，然後從下拉式清單中選擇**帳戶**。

1. 選擇 **SSH Keys** (SSH 金鑰) 索引標籤。

1. 向下捲動至頁面的 **Default keys** (預設金鑰) 區段。

1. 針對您要傳輸檔案的執行個體所在的 AWS 區域 ，選擇預設私有金鑰旁的**下載**。  
![\[Lightsail 主控台中的 SSH 金鑰對。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/managing-key-pairs-download-default-key.png)

1. 將您的私有金鑰存放在本機磁碟上的安全位置。

   您可能想要將下載的金鑰移至存放所有 SSH 金鑰的目錄，例如使用者主目錄中的 "Keys" 資料夾。您需要參考本指南下一節中儲存私有金鑰的目錄。如果私有金鑰嘗試儲存為 `.pem` 以外的格式，則應在儲存之前手動將格式更改為 `.pem`。

## 步驟 2：變更私有金鑰的許可
<a name="copy-private-key-change-permissions"></a>

在下列程序中，您需變更私有金鑰檔案的許可，以確保只有您可讀取和寫入該檔案。

**變更私有金鑰檔案的許可**

1. 在您的本機電腦上開啟終端機視窗。

1. 輸入下列命令，讓金鑰對的私有金鑰只能由您讀取和寫入。這是某些作業系統所需的安全性最佳實務。

   ```
   sudo chmod 400 /path/to/private-key.pem
   ```

   在命令中，將 `/path/to/private-key` 取代為儲存執行個體正使用的金鑰對之私有金鑰的目錄路徑。

   **範例**：

   ```
   sudo chmod 400 /Users/user/Keys/LightsailDefaultKey-us-west-2.pem
   ```

## 步驟 3：將私有金鑰轉移到執行個體
<a name="copy-private-key-to-instance"></a>

在下列程序中，您將透過從本機電腦執行 scp 命令，將私有金鑰傳輸至來源執行個體。

**使用 scp 將私有金鑰從您的電腦傳輸至來源執行個體**

1. 判斷您電腦上私有金鑰檔案的位置，以及執行個體上的目的地路徑。在下列範例中，私有金鑰檔案名稱為 *private-key.pem*，來源執行個體的使用者名稱為 *ec2-user*，來源執行個體的 IPv4 地址為 *public-ipv4-address*，而來源執行個體的 IPv6 地址為 *public-ipv6-address*。*destination-path/* 是您將私有金鑰傳輸至來源執行個體上的位置。
**注意**  
您可以根據執行個體使用的藍圖指定下列其中一個使用者名稱：  
AlmaLinux OS 9、Amazon Linux 2、Amazon Linux 2023、9、 FreeBSD和 CentOS Stream openSUSE執行個體： `ec2-user`
Debian 執行個體：`admin`
Ubuntu 執行個體：`ubuntu`
Bitnami 執行個體：`bitnami`
Plesk 執行個體：`ubuntu`
cPanel 和 WHM 執行個體：`centos`
   + (**IPv4**) 若要將私有金鑰檔案傳輸至執行個體，請從您的電腦輸入下列命令。

     ```
     scp -i /path/private-key.pem /path/private-key.pem ec2-user@public-ipv4-address:path/
     ```
   + (**IPv6**) 若要在執行個體只有 IPv6 地址時將私有金鑰檔案傳輸至執行個體，請從您的電腦輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/private-key.pem /path/private-key.pem ec2-user@\[public-ipv6-address\]:path/
     ```

1. 如果您尚未使用 SSH 連接到執行個體，則會看到如下所示的回應：

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
   can't be established.
   RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
   Are you sure you want to continue connecting (yes/no)?
   ```

   輸入 **yes**。

1. 如果傳輸成功，則回應會和下列內容相似：

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
   to the list of known hosts.
   private-key.pem                                100%   480     24.4KB/s   00:00
   ```

現在您已將私有金鑰傳輸到來源執行個體，您可以安全地連接到 並將檔案傳輸到目標執行個體。繼續下一個步驟以了解方法。

## 步驟 4：在 Lightsail Linux 和 Unix 執行個體之間安全地傳輸檔案
<a name="transfer-files-between-instances-scp"></a>

在下列程序中，您將從一個執行個體 (**來源執行個體**) 執行 scp 命令，將檔案傳輸到另一個執行個體 (**目標執行個體**)。

**使用 scp 在執行個體之間傳輸檔案**

1. 使用 SSH 連線至**來源執行個體**。您可以使用本機電腦上的終端機程式，或使用 中的瀏覽器型 SSH 用戶端來連線Lightsail。如需詳細資訊，請參閱[連接至 Linux 執行個體](lightsail-how-to-connect-to-your-instance-virtual-private-server.md)。

1. 判斷**來源執行個體**上檔案的位置，以及**目標執行個體**上的目的地路徑。在下列範例中，私有金鑰檔案名稱為 *private-key.pem*，執行個體的使用者名稱為 *ec2-user*，執行個體的 IPv4 地址為 *public-ipv4-address*，而執行個體的 IPv6 地址為 *public-ipv6-address*。*destination-path/* 是您要將檔案傳輸到**的目標執行個體**上的位置。
   + (**IPv4**) 若要將檔案從**來源執行個體**傳輸到**目標執行個體**，請從**來源執行個體**輸入下列命令。

     ```
     scp -i /path/private-key.pem /path/my-file.txt ec2-user@public-ipv4-address:destination-path/
     ```
   + (**IPv6**) 若要將檔案從**來源執行個體**傳輸到**目標執行個體**，請從**來源執行個體**輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/private-key.pem /path/my-file.txt ec2-user@\[public-ipv6-address\]:destination-path/
     ```

1. 如果您尚未使用 SSH 連線到**目標執行個體**，您會看到如下所示的回應：

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
   can't be established.
   RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
   Are you sure you want to continue connecting (yes/no)?
   ```

   輸入 **yes**。

1. 如果傳輸成功，則回應會和下列內容相似：

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
   to the list of known hosts.
   my-file.txt                                100%   480     24.4KB/s   00:00
   ```