本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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
-
正在修改的現有端點的 update-in-progress、update-complete 或 update-failed。修改端點時,它會繼續使用其原始組態,直到狀態變更為 update-complete。
如果您的 VPC 沒有 EC2 Instance Connect Endpoint,您可以建立一個。如需詳細資訊,請參閱建立 EC2 Instance Connect Endpoint。
-
-
EC2 Instance Connect Endpoint IP 地址類型必須與執行個體的 IP 地址類型相容。如果您的端點 IP 地址類型是雙堆疊,則它可以同時適用於 IPv4 和 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 主控台連線至執行個體
-
前往 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在導覽窗格中,選擇執行個體。
-
選取執行個體,然後選取 Connect (連線)。
-
選擇 EC2 Instance Connect 索引標籤。
-
針對連線類型,選擇使用私有 IP 連線。
-
選擇私有 IPv4 地址或 IPv6 地址。這些選項會根據指派給執行個體的 IP 地址提供。如果選項呈現灰色,表示您的執行個體沒有指派給該類型的 IP 地址。
-
針對 EC2 Instance Connect Endpoint,請選擇 EC2 Instance Connect Endpoint 的 ID。
注意
EC2 Instance Connect Endpoint 必須與您在上一個步驟中選擇的 IP 地址相容。如果您的端點 IP 地址類型是雙堆疊,則它可以同時適用於 IPv4 和 IPv6 地址。如需詳細資訊,請參閱建立 EC2 Instance Connect Endpoint。
-
針對使用者名稱,如果您用來啟動執行個體的 AMI 使用
ec2-user以外的使用者名稱,請輸入正確的使用者名稱。 -
針對通道持續時間上限 (秒),輸入允許的 SSH 連線持續時間上限。
持續時間必須符合 IAM 政策中指定的任何
maxTunnelDuration條件。如果您無權存取 IAM 政策,請聯絡您的管理員。 -
選擇連線。這會開啟執行個體的終端視窗。
使用 SSH 連線至您的 Linux 執行個體
您可以使用 SSH 連線到 Linux 執行個體,並使用 open-tunnel 命令建立私有通道。可以在單一連線或多重連線模式下使用 open-tunnel。您可以指定執行個體 ID、私有 IPv4 地址或 IPv6 地址。
如需使用 AWS CLI 以使用 SSH 連線至執行個體的詳細資訊,請參閱 使用 連線 AWS CLI。
以下範例使用 OpenSSH
單一連接
使用 SSH 和 open-tunnel 命令僅允許單一連線至執行個體
使用 ssh和 open-tunnel AWS CLI 命令,如下所示。-o 代理命令包含 open-tunnel 命令,它可建立執行個體的私有通道。
ssh -imy-key-pair.pemec2-user@i-1234567890abcdef0\ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-idi-1234567890abcdef0'
對於:
-
-i– 指定用來啟動執行個體的金鑰對。 -
– 指定用來啟動執行個體的 AMI 使用者名稱,以及執行個體 ID。對於具有 IPv6 地址的執行個體,您必須指定 IPv6 地址,而不是執行個體 ID。ec2-user@i-1234567890abcdef0 -
--instance-id– 指定要連線之執行個體的 ID。或者,指定%h,其可從使用者中擷取執行個體 ID。對於具有 IPv6 地址的執行個體,請將 取代--instance-id為i-1234567890abcdef0--private-ip-address。2001:db8::1234:5678:1.2.3.4
多重連線
若要允許執行個體的多個連線,請先執行 open-tunnel AWS CLI 命令以開始接聽新的 TCP 連線,然後使用 ssh 建立新的 TCP 連線和執行個體的私有通道。
允許使用 SSH 和 open-tunnel 命令多重連線至執行個體
-
執行下列命令來開始偵聽本機電腦上指定連接埠上的新 TCP 連線。
aws ec2-instance-connect open-tunnel \ --instance-idi-1234567890abcdef0\ --local-port8888預期的輸出結果:
Listening for connections on port 8888. -
在新終端視窗中,執行下列
ssh命令,為執行個體建立新的 TCP 連線和私有通道。ssh -imy-key-pair.pem ec2-user@localhost -p8888預期輸出 – 在第一個終端視窗中,您會看到以下內容:
[1] Accepted new tcp connection, opening websocket tunnel.您可能會看到以下內容:
[1] Closing tcp connection.
使用 以執行個體 ID 連線到您的 Linux 執行個體 AWS CLI
如果您只知道執行個體 ID,您可以使用 ec2-instance-connect ssh AWS CLI 命令,使用 SSH 用戶端連線至執行個體。如需詳細資訊,請參閱使用 連線 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 ssh CLI 命令,並使用 eice值指定ssh命令、執行個體 ID 和 --connection-type 參數,以使用 EC2 Instance Connect Endpoint。如果執行個體只有 IPv6 地址,您還必須在 IPv6 地址中包含 --instance-ip 參數。
-
如果執行個體有私有 IPv4 地址 (也可以有 IPv6 地址),請使用下列命令和參數:
aws ec2-instance-connect ssh \ --instance-idi-1234567890example\ --os-userec2-user\ --connection-type eice -
如果執行個體只有 IPv6 地址,請包含具有 IPv6 地址的
--instance-ip參數:aws ec2-instance-connect ssh \ --instance-idi-1234567890example\ --instance-ip2001:db8::1234:5678:1.2.3.4\ --os-userec2-user\ --connection-type eice
提示
如果您收到錯誤,請確定您使用的是第 2 AWS CLI 版。ssh 參數僅適用於第 2 AWS CLI 版。如需相關資訊,請參閱「AWS Command Line Interface 使用者指南」中的關於 AWS CLI 第 2 版。
使用 RDP 連線至您的 Windows 執行個體
您可以透過 EC2 Instance Connect Endpoint,使用遠端桌面通訊協定 (RDP),在沒有公有 IPv4 地址或公有 DNS 名稱的情況下連線到 Windows 執行個體。
使用 RDP 用戶端連線至您的 Windows 執行個體。
-
完成使用 RDP 連線至 Windows 執行個體中的步驟 1 – 8。在步驟 8 下載 RDP 桌面檔案之後,您會收到無法連線訊息,這是預期訊息,因為您的執行個體沒有公有 IP 位址。
-
執行下列命令,為執行個體所在的 VPC 建立私有通道。
--remote-port必須為3389,因為 RDP 預設會使用連接埠 3389。aws ec2-instance-connect open-tunnel \ --instance-idi-1234567890abcdef0\ --remote-port 3389 \ --local-portany-port -
在下載資料夾中,尋找您下載的 RDP 桌面檔案,然後將其拖曳至 RDP 用戶端視窗。
-
以滑鼠右鍵按一下 RDP 桌面檔案,並選擇編輯。
-
在編輯電腦視窗中,針對電腦名稱 (要連線的執行個體),輸入
localhost:,其中local-port使用您在步驟 2 中所指定的值,然後選擇儲存。local-port請注意,編輯電腦視窗的以下螢幕截取畫面來自 Mac 中的 Microsoft 遠端桌面。如果使用 Windows 用戶端,則該視窗可能會有所不同。
-
在 RDP 用戶端中,以滑鼠右鍵按一下電腦 (您剛設定),然後選擇連線以連線至您的執行個體。
-
出現提示時,輸入管理員帳戶的解密密碼。
疑難排解
請使用以下資訊來協助您診斷並修正使用 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。