使用 EC2 Instance Connect Endpoint 連線至 Amazon EC2 執行個體 - Amazon Elastic Compute Cloud

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

使用 EC2 Instance Connect Endpoint 連線至 Amazon EC2 執行個體

您可以使用 EC2 Instance Connect Endpoint 連線到支援 SSH 或 RDP 的 Amazon EC2 執行個體。

必要條件
  • 您必須具有必要的 IAM 許可才能連線至 EC2 Instance Connect Endpoint。如需詳細資訊,請參閱使用 EC2 Instance Connect Endpoint 連線到執行個體所需的許可

  • EC2 Instance Connect Endpoint 必須為可用 (主控台) 或 create-complete (AWS CLI) 狀態。如果您沒有 VPC 的 EC2 Instance Connect Endpoint,則可以建立一個。如需詳細資訊,請參閱建立 EC2 Instance Connect Endpoint

  • 您的執行個體必須具有 IPv4 地址 (私有或公有)。EC2 Instance Connect Endpoint 不支援使用 IPv6 地址連線至執行個體。

  • (Linux 執行個體) 若要使用 Amazon EC2 主控台連線至您的執行個體,或使用 CLI 來連接,並讓 EC2 Instance Connect 處理暫時性金鑰,則您的執行個體必須安裝 EC2 Instance Connect。如需詳細資訊,請參閱安裝 EC2 Instance Connect

  • 確保執行個體的安全群組允許來自 EC2 Instance Connect Endpoint 的傳入 SSH 流量。如需詳細資訊,請參閱目標執行個體安全群組規則

使用 Amazon EC2 主控台連線至 Linux 執行個體

您可以使用 Amazon EC2 主控台 (瀏覽器型用戶端) 連線到執行個體,如下所示。

要使用 Amazon EC2 主控台連線至執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取執行個體,然後選取 Connect (連線)。

  4. 選擇 EC2 Instance Connect 索引標籤。

  5. 針對連線類型,請選擇使用 EC2 Instance Connect Endpoint 進行連線

  6. 針對 EC2 Instance Connect Endpoint,請選擇 EC2 Instance Connect Endpoint 的 ID。

  7. 針對使用者名稱,如果您用來啟動執行個體的 AMI 使用 ec2-user 以外的使用者名稱,請輸入正確的使用者名稱。

  8. 針對通道持續時間上限 (秒),輸入允許的 SSH 連線持續時間上限。

    持續時間必須符合 IAM 政策中指定的任何 maxTunnelDuration 條件。如果您無權存取 IAM 政策,請聯絡您的管理員。

  9. 選擇連線。這會開啟執行個體的終端視窗。

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

您可以使用 SSH 連線到 Linux 執行個體,並使用 open-tunnel 命令建立私有通道。可以在單一連線或多重連線模式下使用 open-tunnel

如需使用 AWS CLI 來使用 SSH 連線至執行個體的詳細資訊,請參閱 使用 連線 AWS CLI

以下範例使用 OpenSSH。您可以使用支援代理模式的任何其他 SSH 用戶端。

單一連接

使用 SSH 和 open-tunnel 命令僅允許單一連線至執行個體

使用 sshopen-tunnel AWS CLI 命令,如下所示。-o 代理命令包含 open-tunnel 命令,它可建立執行個體的私有通道。

ssh -i my-key-pair.pem ec2-user@i-0123456789example \ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-0123456789example'

對於:

  • -i – 指定用來啟動執行個體的金鑰對。

  • ec2-user@i-0123456789example – 指定用來啟動執行個體的 AMI 使用者名稱,以及執行個體 ID。

  • --instance-id – 指定要連線之執行個體的 ID。或者,指定 %h,其可從使用者中擷取執行個體 ID。

多重連線

若要允許與執行個體的多個連線,請先執行 open-tunnel AWS CLI 命令以開始接聽新的 TCP 連線,然後使用 ssh 建立新的 TCP 連線和執行個體的私有通道。

允許使用 SSH 和 open-tunnel 命令多重連線至執行個體
  1. 執行下列命令來開始偵聽本機電腦上指定連接埠上的新 TCP 連線。

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --local-port 8888

    預期的輸出結果

    Listening for connections on port 8888.
  2. 新終端視窗中,執行下列 ssh 命令,為執行個體建立新的 TCP 連線和私有通道。

    ssh -i my-key-pair.pem ec2-user@localhost -p 8888

    預期輸出 – 在第一個終端視窗中,您會看到以下內容:

    [1] Accepted new tcp connection, opening websocket tunnel.

    您可能會看到以下內容:

    [1] Closing tcp connection.

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

如果您只知道執行個體 ID,您可以使用 ec2-instance-connect AWS CLI 命令,使用 SSH 用戶端連線至執行個體。如需使用 ec2-instance-connect 命令的詳細資訊,請參閱 使用 連線 AWS CLI

必要條件

安裝第 2 AWS CLI 版,並使用您的登入資料進行設定。如需詳細資訊,請參閱「AWS Command Line Interface 使用者指南」中的安裝或更新 AWS CLI的最新版本設定 AWS CLI。或者,在預先驗證的 shell 中開啟 AWS CloudShell 和執行 AWS CLI 命令。

使用執行個體 ID 和 EC2 Instance Connect Endpoint 連線至執行個體

如果您僅知道執行個體 ID,請使用 ec2-instance-connect CLI 命令,並使用 eice 值指定 ssh 命令、執行個體 ID 和 --connection-type 參數。

aws ec2-instance-connect ssh --instance-id i-1234567890example --os-user ec2-user --connection-type eice
提示

如果您在使用此命令時發生錯誤,請確定您使用的是 AWS CLI 第 2 版。ssh 參數僅適用於第 2 AWS CLI 版。如需相關資訊,請參閱「AWS Command Line Interface 使用者指南」中的關於 AWS CLI 第 2 版

使用 RDF 連接至您的 Windows 執行個體

您可以透過 EC2 Instance Connect Endpoint,使用遠端桌面通訊協定 (RDP),在沒有公有 IPv4 地址或公有 DNS 名稱的情況下連線到 Windows 執行個體。

使用 RDP 用戶端連線至您的 Windows 執行個體。
  1. 完成使用 RDP 連線至 Windows 執行個體中的步驟 1 – 8。在步驟 8 下載 RDP 桌面檔案之後,您會收到無法連線訊息,這是預期訊息,因為您的執行個體沒有公有 IP 位址。

  2. 執行下列命令,為執行個體所在的 VPC 建立私有通道。--remote-port 必須為 3389,因為 RDP 預設會使用連接埠 3389。

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --remote-port 3389 \ --local-port any-port
  3. 下載資料夾中,尋找您下載的 RDP 桌面檔案,然後將其拖曳至 RDP 用戶端視窗。

  4. 以滑鼠右鍵按一下 RDP 桌面檔案,並選擇編輯

  5. 編輯電腦視窗中,針對電腦名稱 (要連線的執行個體),輸入 localhost:local-port,其中 local-port 使用您在步驟 2 中所指定的值,然後選擇儲存

    請注意,編輯電腦視窗的以下螢幕截取畫面來自 Mac 中的 Microsoft 遠端桌面。如果使用 Windows 用戶端,則該視窗可能會有所不同。

    在電腦名稱欄位中具有 "localhost:5555" 範例的 RDP 用戶端。
  6. 在 RDP 用戶端中,以滑鼠右鍵按一下電腦 (您剛設定),然後選擇連線以連線至您的執行個體。

  7. 出現提示時,輸入管理員帳戶的解密密碼。

疑難排解

請使用以下資訊來協助您診斷並修正使用 EC2 Instance Connect Endpoint 連線執行個體時可能遇到的問題。

無法連線至執行個體

以下是您可能無法連線至執行個體的常見原因。

  • 安全群組:檢查指派給 EC2 Instance Connect Endpoint 和執行個體的安全群組。有關所需安全群組規則的詳細資訊,請參閱 EC2 Instance Connect Endpoint 的安全群組

  • 執行個體狀態:驗證您的執行個體處於 running 狀態。

  • 金鑰對:如果用來連線的命令需要私有金鑰,請確認執行個體具有公有金鑰,且您擁有對應的私有金鑰。

  • IAM 許可:確認您具有所需的 IAM 許可。如需詳細資訊,請參閱授予許可以使用 EC2 Instance Connect Endpoint

如需 Linux 執行個體的更多疑難排解秘訣,請參閱 對連線至 Amazon EC2 Linux 執行個體的問題進行疑難排解。如需 Windows 執行個體的疑難排解秘訣,請參閱 對連線至 Amazon EC2 Windows 執行個體的問題進行疑難排解

錯誤代碼:AccessDeniedException

如果您收到 AccessDeniedException 錯誤,且 IAM 政策中已指定 maxTunnelDuration 條件,則請務必在連線至執行個體時指定 --max-tunnel-duration 參數。如需有關此參數的詳細資訊,請參閱「AWS CLI 命令參考」中的 open-tunnel