使用 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. 在導覽窗格中,選擇執行個體

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

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

  5. 選擇使用私有 IP 連線

  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-1234567890abcdef0 \ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-1234567890abcdef0'

對於:

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

  • ec2-user@i-1234567890abcdef0 – 指定用來啟動執行個體的 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-1234567890abcdef0 \ --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 版

使用 RDP 連線至您的 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-1234567890abcdef0 \ --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