

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

# 使用 SCP 將檔案傳輸至 Linux 執行個體
<a name="linux-file-transfer-scp"></a>

在本機電腦和 Linux 執行個體之間傳輸檔案的一種方式是使用安全複製通訊協定 (SCP)。SCP 是簡單操作的理想選項，例如一次性檔案複製。SCP 會使用您透過 SSH 連線至執行個體時所用的相同 .pem 檔案，以保障檔案傳輸的安全性。若您需要保持檔案同步，或者若檔案很大，則 **rsync** 比 SCP 更快、效率更高。為了安全起見，請透過 SSH 使用 **rsync**，因為 **rsync** 預設會使用純文字傳輸資料。

使用 SCP 連線到您的 Linux 執行個體之前，請先完成下列先決條件：
+ **完成一般先決條件。**
  + 請確認您的執行個體已通過狀態檢查。執行個體可能需要幾分鐘的時間準備就緒，以接受連線要求。如需詳細資訊，請參閱[檢視狀態檢查](viewing_status.md)。
  + [取得必要的執行個體詳細資訊](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
  + [找出私有金鑰並設定許可](connection-prereqs-general.md#connection-prereqs-private-key).
  + [(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint).
+ **允許來自 IP 位址的傳入 SSH 流量。**

  請確保與執行個體關聯的安全群組允許來自您的 IP 地址的傳入 SSH 流量。如需詳細資訊，請參閱[從您電腦連線到執行個體的規則](security-group-rules-reference.md#sg-rules-local-access)。
+ **安裝 SCP 用戶端。**

  大部分的 Linux、Unix 和 Apple 電腦預設都包含 SCP 用戶端。如果您的電腦沒有 SCP 用戶端，OpenSSH 專案會提供 SSH 工具完整套件的免費實作，包括 SCP 用戶端。如需詳細資訊，請參閱 [https://www.openssh.com](https://www.openssh.com)。

下列程序會逐步引導您使用 SCP 使用執行個體的公有 DNS 名稱傳輸檔案，或是使用 IPv6 地址 (如果執行個體具備的話) 傳輸檔案。

**使用 SCP 在電腦和執行個體之間傳輸檔案**

1. 決定來源檔案在電腦上的位置，以及執行個體上的目的地路徑。在下列範例中，私有金鑰檔案的名稱為 `key-pair-name.pem`，要傳輸的檔案為 `my-file.txt`，執行個體的使用者名稱為 ec2-user，執行個體的公用 DNS 名稱為 `instance-public-dns-name`，而執行個體的 IPv6 地址為 `2001:db8::1234:5678:1.2.3.4`。
   + (公用 DNS) 若要將檔案傳輸到執行個體上的目的地，請從您的電腦輸入下列命令。

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
     ```
   + (IPv6) 若要將檔案傳輸到執行個體上的目的地 (如果執行個體具有 IPv6 地址)，請從您的電腦輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[2001:db8::1234:5678:1.2.3.4\]: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)?
   ```

   (選用) 您可以選用驗證安全性警示中的指紋是否符合執行個體指紋。如需詳細資訊，請參閱[(選用) 取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint)。

   輸入 **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
   ```

1. 若要反向 (從 Amazon EC2 執行個體到您的電腦) 傳輸檔案，請反轉主機參數的順序。例如：您可以從 EC2 執行個體傳輸 `my-file.txt` 到本機電腦上的目的地 `my-file2.txt`，如下列範例所示。
   + (公用 DNS) 若要將檔案傳輸到電腦上的目的地，請從您的電腦輸入下列命令。

     ```
     scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
     ```
   + (IPv6) 如果執行個體具有 IPv6 地址，欲將檔案傳輸到電腦上的目的地，請從您的電腦輸入下列命令。IPv6 位址必須用方括號 (`[ ]`) 括住，必須逸出 (`\`)。

     ```
     scp -i /path/key-pair-name.pem ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/my-file.txt path/my-file2.txt
     ```