使用適用於 Linux 的 Windows 子系統 (WSL),從 Windows 連線至 Linux 執行個體 - Amazon Elastic Compute Cloud

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

使用適用於 Linux 的 Windows 子系統 (WSL),從 Windows 連線至 Linux 執行個體

啟動執行個體之後,您可以連接到此執行個體,並以一般使用電腦的方式使用。

下列指示說明如何在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Linux 發行版本連線至執行個體。WSL 是免費下載的軟體,可讓您直接在 Windows 上執行原生 Linux 命令列工具與傳統 Windows 桌面,而不需要額外的虛擬機器。

安裝 WSL 後,您可以使用原生 Linux 環境來連接至 Linux EC2 執行個體,而不需要使用 PuTTY 或 PuTTYgen。Linux 環境可讓您輕鬆連接至 Linux 執行個體,因為此環境隨附一個原生 SSH 用戶端,可用來連接至 Linux 執行個體和變更 .pem 金鑰檔案的許可。Amazon EC2 主控台可提供 SSH 命令以連接至 Linux 執行個體,且您可以透過 SSH 命令取得詳細輸出來進行故障排解。如需詳細資訊,請參閱適用於 Linux 的 Windows 子系統文件

注意

安裝 WSL 後,所有先決條件和步驟都與使用 SSH 從 Linux 或 macOS 連線至 Linux 執行個體中所述的先決條件和步驟相同,而且其體驗就與使用原生 Linux 一樣。

如果您在嘗試連線至執行個體時遇到錯誤,請參閱 連線到執行個體的故障診斷

必要條件

連線到您的 Linux 執行個體之前,請先完成下列先決條件。

確認執行個體已準備就緒

啟動執行個體之後,執行個體可能需要幾分鐘的時間準備就緒讓您連接。請確認您的執行個體已通過狀態檢查。您可以在 Instances (執行個體) 頁面的 Status check (狀態檢查) 欄檢視此資訊。

驗證連接到執行個體的一般先決條件

若要尋找執行個體的公有 DNS 名稱或 IP 地址,以及連接執行個體時應使用的使用者名稱,請參閱 取得執行個體的相關資訊

在本機電腦安裝適用於 Linux 的 Windows 子系統 (WSL) 和 Linux 發行版本

使用 Windows 10 安裝指南中的指示來安裝 WSL 和 Linux 發行版本。指示中的範例是安裝 Linux 的 Ubuntu 發行版本,但您可以安裝任何發行版本。您將會收到提示,要求您重新啟動電腦以讓變更生效。

將私有金鑰從 Windows 複製到 WSL

在 WSL 終端機視窗中,將 (啟動執行個體時所指定金鑰對的) .pem 檔案從 Windows 複製到 WSL。請記下 .pem 檔案在 WSL 上的完整路徑,以便於在連接至執行個體時使用。如需有關如何指定 Windows 硬碟路徑的資訊,請參閱如何存取 C 磁碟機?。如需有關金鑰對和 Windows 執行個體的詳細資訊,請參閱 Amazon EC2 金鑰對和 Windows 執行個體

cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem

使用 WSL 連線至您的 Linux 執行個體

根據下列程序使用適用於 Linux 的 Windows 子系統 (WSL) 來連接至 Linux 執行個體。如果您在嘗試連線至執行個體時遇到錯誤,請參閱 連線到執行個體的故障診斷

使用 SSH 連線到您的執行個體
  1. 在終端機視窗中,使用 ssh 命令來連接到執行個體。您指定私密金鑰 (.pem) 的路徑和檔案名稱、執行個體的使用者名稱,以及執行個體的公有 DNS 名稱或 IPv6 位址。如需如何尋找私密金鑰、您的執行個體的使用者名稱,以及執行個體 DNS 名稱或 IPv6 位址的詳細資訊,請參閱 找出私有金鑰並設定許可取得執行個體的相關資訊。若要連線到您的執行個體,請執行下列其中一個命令。

    • (公有 DNS) 若要使用執行個體的公有 DNS 名稱進行連線,請輸入下列命令。

      ssh -i /path/key-pair-name.pem instance-user-name@my-instance-public-dns-name
    • (IPv6) 或者,如果您的執行個體具有 IPv6 位址,則可以使用其 IPv6 位址連線到該執行個體。使用私有金鑰 (.pem) 檔案的路徑、適當的使用者名稱和 IPv6 地址來指定 ssh 命令。

      ssh -i /path/key-pair-name.pem instance-user-name@my-instance-IPv6-address

    您會看到如下的回應:

    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)?
  2. (選用) 確認安全提醒中的指紋是否符合您在(選用) 取得執行個體指紋中取得的指紋。如果這些指紋不相符,可能是有人試圖攻擊 man-in-the-middle「」。如果它們符合,請繼續下一個步驟。

  3. 輸入 yes

    您會看到如下的回應:

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
    to the list of known hosts.

使用 SCP 將檔案從 Linux 傳輸到 Linux 執行個體

在本機電腦和 Linux 執行個體之間傳輸檔案的一種方式是使用安全複製通訊協定 (SCP)。本節說明如何使用 SCP 傳輸檔案。此程序類似使用 SSH 連線到執行個體的程序。

必要條件

下列程序會逐步引導您使用 SCP 傳輸檔案。如已使用 SSH 連線到執行個體,並已確認其指紋,您可開始使用包含 SCP 命令的步驟 (步驟 4)。

使用 SCP 傳輸檔案
  1. 使用執行個體的公有 DNS 名稱將檔案傳輸到您的執行個體。例如,如果私有金鑰檔案的名稱為 key-pair-name,要傳輸的檔案為 SampleFile.txt,使用者名稱為 instance-user-name,且執行個體的公有 DNS 名稱為 my-instance-public-dns-name,或 IPv6 位址為 my-instance-IPv6-address,請使用下列命令將檔案複製到 instance-user-name 主目錄。

    • (公有 DNS) 若要使用執行個體的公有 DNS 名稱傳輸檔案,請輸入下列命令。

      scp -i /path/key-pair-name.pem /path/SampleFile.txt instance-user-name@my-instance-public-dns-name:~
    • (IPv6) 或者,如果您的執行個體具有 IPv6 位址,則可以使用該執行個體的 IPv6 位址傳輸檔案。IPv6 位址必須用方括號 ([ ]) 括住,必須逸出 (\)。

      scp -i /path/key-pair-name.pem /path/SampleFile.txt instance-user-name@\[my-instance-IPv6-address\]:~

    您會看到如下的回應:

    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)?
  2. (選用) 確認安全提醒中的指紋是否符合您在(選用) 取得執行個體指紋中取得的指紋。如果這些指紋不相符,可能是有人試圖攻擊 man-in-the-middle「」。如果它們符合,請繼續下一個步驟。

  3. 輸入 yes

    您會看到如下的回應:

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
    to the list of known hosts.
    Sending file modes: C0644 20 SampleFile.txt
    Sink: C0644 20 SampleFile.txt
    SampleFile.txt                                100%   20     0.0KB/s   00:00

    如果您收到 "bash: scp: command not found" (bash: scp: 找不到命令) 錯誤,必須先在您的 Linux 執行個體上安裝 scp。此項目在某些作業系統中位於 openssh-clients 套件中。針對 Amazon ECS 最佳化的 AMI 等 Amazon Linux 變體,請使用下列命令來安裝 scp

    [ec2-user ~]$ sudo yum install -y openssh-clients
  4. 若要反向 (從 Amazon EC2 執行個體到本機電腦) 傳輸檔案,請反轉主機參數的順序。例如,若要將 SampleFile.txt 檔案以 SampleFile2.txt 的形式,從 EC2 執行個體傳回到本機電腦的主目錄,請在本機電腦上使用下列其中一個命令。

    • (公有 DNS) 若要使用執行個體的公有 DNS 名稱傳輸檔案,請輸入下列命令。

      scp -i /path/key-pair-name.pem instance-user-name@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt
    • (IPv6) 或者,如果您的執行個體具有 IPv6 位址,若要使用該執行個體的 IPv6 位址,向另一個方向傳輸檔案,請輸入下列命令。

      scp -i /path/key-pair-name.pem instance-user-name@\[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~/SampleFile.txt ~/SampleFile2.txt

解除安裝 WSL

如需有關解除安裝適用於 Linux 的 Windows 子系統的資訊,請參閱如何解除安裝 WSL 發行版本?