使用 EC2 Instance Connect 連線 - Amazon Elastic Compute Cloud

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

使用 EC2 Instance Connect 連線

下列指示會說明如何使用 EC2 Instance Connect 連線至 Linux 執行個體。

決定要使用的連線選項。使用的連線選項取決於執行個體是否具有公有 IPv4 地址:

  • Amazon EC2 主控台 – 若要使用 Amazon EC2 主控台進行連線,執行個體必須設有公有 IPv4 地址。

  • SSH 用戶端 – 如果執行個體沒有公有 IP 地址,您可以使用 SSH 用戶端透過私有網路連線到執行個體。例如,您可以從相同 VPC 內,或透過 VPN 連接、Transit Gateway 或 AWS Direct Connect來連線。

EC2 Instance Connect 不支援使用 IPv6 地址進行連線。

提示

EC2 Instance Connect 是連線到 Linux 執行個體的其中一個選項。如需有關其他選項的詳細資訊,請參閱 連接至您的 Linux 執行個體。若要連線至 Windows 執行個體,請參閱連接至 Windows 執行個體

使用 Connect Amazon EC2 主控台進行連線

您可以從主控台選取執行個體並選取使用 EC2 Instance Connect 來進行連線,以便使用 Amazon EC2 主控台連線至執行個體。Instance Connect 會處理許可並提供成功的連線。

若要使用 Amazon EC2 主控台進行連線,執行個體必須設有公用 IPv4 地址。連接之前,請務必檢閱所有先決條件

從 Amazon EC2 主控台使用以瀏覽器為基礎的用戶端連線至執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

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

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

  5. 針對 [連線類型],選擇 [使用 EC2 執行個體 Connect 線連線

  6. 對於使用者名稱,驗證使用者名稱

  7. 選擇連線以開啟終端視窗。

使用您自己的金鑰和 SSH 用戶端來進行連接

當您使用 EC2 Instance Connect API 時,您可以使用自己的 SSH 金鑰和從您選擇的 SSH 用戶端連接執行個體。這可讓您從 Instance Connect 發佈公有的金鑰至執行個體。此連線方法適用於具有公有和私有 IP 地址的執行個體。

要求
  • 金鑰對的需求

  • 連線到僅具有私有 IP 地址的執行個體時,從中起始 SSH 工作階段的本機電腦必須具有連線到 EC2 Instance Connect 服務端點的能力 (以將 SSH 公有金鑰推送至執行個體),以及透過網路連線到執行個體私有 IP 地址的能力,以建立 SSH 工作階段。EC2 Instance Connect 服務端點可以透過網際網路或 AWS Direct Connect 公有虛擬介面連線。若要連線到執行個體的私有 IP 地址,您可以使用服務,例如 AWS Direct ConnectAWS Site-to-Site VPNVPC 互連

連接之前,請務必檢閱所有先決條件

使用您自己的金鑰和任何 SSH 用戶端來連接制執行個體
  1. (選用) 產生新 SSH 私有和公有金鑰

    您可以使用以下命令來產生新 SSH 私有和公有金鑰 (my_keymy_key.pub):

    $ ssh-keygen -t rsa -f my_key
  2. 將 SSH 公有金鑰推送至執行個體

    使用 send-ssh-public-key 命令將 SSH 公開金鑰推送至執行個體。如果您使用 AL2023 或 Amazon Linux 2 啟動執行個體,則 AMI 的預設使用者名稱為ec2-user。如果您使用 Ubuntu 啟動執行個體,AMI 的預設使用者名稱為ubuntu

    下列範例將公開金鑰推送至特定可用區域的特定執行個體,若要認證 ec2-user

    $ aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --availability-zone us-west-2b \ --instance-id i-001234a4bf70dec41EXAMPLE \ --instance-os-user ec2-user \ --ssh-public-key file://my_key.pub
  3. 使用私有金鑰連線至執行個體

    使用 ssh 命令,來使用私有金鑰連接至執行個體,之後系統會將公有金鑰從執行個體中繼資料中移除 (在系統移除金鑰前您有 60 秒的時間)。指定與公開金鑰對應的私密金鑰、用來啟動執行個體之 AMI 的預設使用者名稱,以及執行個體的公用 DNS 名稱 (如果透過私人網路連線,請指定私人 DNS 名稱或 IP 位址)。新增該 IdentitiesOnly=yes 選項以確保連線只使用 ssh 組態中的檔案和指定的金鑰。

    $ ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

使用 Connect AWS CLI

如果您知道執行個體 ID,就可以使用 ec2 執行個體 connect AWS CLI 指令,透過安全殼層用戶端連線至執行個體。如果您未指定連線類型,則 EC2 Instance Connect 會自動嘗試連線至執行個體的公有 IPv4 地址。如果您的執行個體沒有公有 IPv4 地址,則 EC2 Instance Connect 會嘗試透過 EC2 Instance Connect Endpoint 連接到執行個體的私有 IPv4 地址。如果執行個體沒有公有 IPv4 地址,或者 VPC 沒有 EC2 Instance Connect Endpoint,則 EC2 Instance Connect 會嘗試連線到執行個體的 IPv6 地址。

重要

使用此方法連線之前,請確定您已設定 AWS CLI,包括其使用的認證,並且您使用的是最新版本的 AWS CLI. 如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝或更新 AWS CLI的最新版本設定 AWS CLI

連線類型
auto (default)

CLI 會嘗試依下列順序和對應的連線類型,使用執行個體的 IP 地址進行連線:

  • 公有 IPv4:direct

  • 私有 IPv4:eice

  • IPv6:direct

direct

CLI 會嘗試按照以下順序使用執行個體的 IP 地址進行連線 (不會透過 EC2 Instance Connect Endpoint 進行連線):

  • 公有 IPv4

  • IPv6

  • 私有 IPv4

eice

CLI 一律使用執行個體的私有 IPv4 地址。

注意

將來,我們可能會變更 auto 連線類型的行為。若要確保使用您想要的連線類型,建議您明確地將 --connection-type 設定為 directeice

當您使用 EC2 Instance Connect 連接至執行個體時,EC2 Instance Connect API 會將 SSH 公有金鑰推送至執行個體中繼資料,此金鑰可保留 60 秒。連接至使用者的 IAM 政策會授權使用者將公有金鑰推送至執行個體中繼資料。

使用執行個體 ID 連線到執行個體

如果您只知道執行個體 ID,並希望讓 EC2 執行個體 Connect 線確定連線到執行個體時要使用的連線類型,請使用 ec2 執行個體連線 CLI 指令並指定ssh參數和執行個體 ID。

aws ec2-instance-connect ssh --instance-id i-1234567890example
提示

如果使用此命令時出現錯誤,請確定您使用的是 AWS CLI 版本 2。該ssh參數僅在 AWS CLI 版本 2 中可用。如需詳細資訊,請參閱《使用指南》中的AWS Command Line Interface 〈關於 AWS CLI 版本 2

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

如果要透過 EC2 Instance Connect Endpoint 連線到執行個體,則請使用上述命令並指定具有 eice 值的 --connection-type 參數。

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type eice
使用執行個體 ID 和您自己的私有金鑰檔案連線至執行個體

如果想透過 EC2 Instance Connect Endpoint 使用自己的私有金鑰連線到執行個體,則請指定執行個體 ID 和私有金鑰檔案的路徑。請勿在路徑中包含 file://;下列範例會無效:file:///path/to/key

aws ec2-instance-connect ssh --instance-id i-1234567890example --private-key-file /path/to/key.pem

疑難排解

如果您在嘗試連線至執行個體時遇到錯誤,請參閱下文: