本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 主控台連線至執行個體
-
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在導覽窗格中,選擇 Instances (執行個體)。
-
選取執行個體,然後選取 Connect (連線)。
-
選擇 EC2 Instance Connect 索引標籤。
-
針對連線類型,請選擇使用 EC2 Instance Connect Endpoint 進行連線。
-
針對 EC2 Instance Connect Endpoint,請選擇 EC2 Instance Connect Endpoint 的 ID。
-
針對使用者名稱,如果您用來啟動執行個體的 AMI 使用
ec2-user
以外的使用者名稱,請輸入正確的使用者名稱。 -
針對通道持續時間上限 (秒),輸入允許的 SSH 連線持續時間上限。
持續時間必須符合 IAM 政策中指定的任何
maxTunnelDuration
條件。如果您無權存取 IAM 政策,請聯絡您的管理員。 -
選擇連線。這會開啟執行個體的終端視窗。
使用 SSH 連線至您的 Linux 執行個體
您可以使用 SSH 連線到 Linux 執行個體,並使用 open-tunnel
命令建立私有通道。可以在單一連線或多重連線模式下使用 open-tunnel
。
如需使用 AWS CLI 來使用 SSH 連線至執行個體的詳細資訊,請參閱 使用 連線 AWS CLI。
以下範例使用 OpenSSH
單一連接
使用 SSH 和 open-tunnel
命令僅允許單一連線至執行個體
使用 ssh
和 open-tunnel-o
代理命令包含 open-tunnel
命令,它可建立執行個體的私有通道。
ssh -i
my-key-pair
.pemec2-user
@i-0123456789example
\ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-idi-0123456789example
'
對於:
-
-i
– 指定用來啟動執行個體的金鑰對。 -
– 指定用來啟動執行個體的 AMI 使用者名稱,以及執行個體 ID。ec2-user
@i-0123456789example
-
--instance-id
– 指定要連線之執行個體的 ID。或者,指定%h
,其可從使用者中擷取執行個體 ID。
多重連線
若要允許與執行個體的多個連線,請先執行 open-tunnelssh
建立新的 TCP 連線和執行個體的私有通道。
允許使用 SSH 和 open-tunnel
命令多重連線至執行個體
-
執行下列命令來開始偵聽本機電腦上指定連接埠上的新 TCP 連線。
aws ec2-instance-connect open-tunnel \ --instance-id
i-0123456789example
\ --local-port8888
預期的輸出結果
Listening for connections on port 8888.
-
在新終端視窗中,執行下列
ssh
命令,為執行個體建立新的 TCP 連線和私有通道。ssh -i
my-key-pair
.pem ec2-user@localhost -p8888
預期輸出 – 在第一個終端視窗中,您會看到以下內容:
[1] Accepted new tcp connection, opening websocket tunnel.
您可能會看到以下內容:
[1] Closing tcp connection.
使用 AWS CLI連線至您的 Linux 執行個體
如果您只知道執行個體 ID,您可以使用 ec2-instance-connect
必要條件
安裝第 2 AWS CLI 版,並使用您的登入資料進行設定。如需詳細資訊,請參閱「AWS Command Line Interface 使用者指南」中的安裝或更新 AWS CLI的最新版本和設定 AWS CLI。或者,在預先驗證的 shell 中開啟 AWS CloudShell 和執行 AWS CLI 命令。
使用執行個體 ID 和 EC2 Instance Connect Endpoint 連線至執行個體
如果您僅知道執行個體 ID,請使用 ec2-instance-connecteice
值指定 ssh
命令、執行個體 ID 和 --connection-type
參數。
aws ec2-instance-connect ssh --instance-id
i-1234567890example
--os-userec2-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 執行個體。
-
完成使用 RDP 連線至 Windows 執行個體中的步驟 1 – 8。在步驟 8 下載 RDP 桌面檔案之後,您會收到無法連線訊息,這是預期訊息,因為您的執行個體沒有公有 IP 位址。
-
執行下列命令,為執行個體所在的 VPC 建立私有通道。
--remote-port
必須為3389
,因為 RDP 預設會使用連接埠 3389。aws ec2-instance-connect open-tunnel \ --instance-id
i-0123456789example
\ --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