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

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

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

下列指示說明如何透過 Amazon EC2 主控台 AWS CLI、 或 SSH 用戶端,使用 EC2 Instance Connect 連線至您的 Linux 執行個體。 Amazon EC2

當您透過主控台使用 EC2 Instance Connect 連線到執行個體 AWS CLI,或 EC2 Instance Connect API 會自動將 SSH 公有金鑰推送至執行個體中繼資料,並保留 60 秒。連接至您使用者的 IAM 政策會授權此動作。如果您偏好使用自己的 SSH 金鑰,則可以使用 SSH 用戶端,並使用 EC2 Instance Connect 將 SSH 金鑰明確推送至執行個體。

要求

在開始之前,請務必檢閱先決條件

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

您可以透過 Amazon EC2 主控台使用 EC2 Instance Connect 連線到執行個體。

要求

若要使用 Amazon EC2 主控台進行連線,執行個體必須具有公用 IPv4 或公有 IPv6 地址。如果執行個體只有私有 IPv4 地址,您可以使用 ec2-instance-connect AWS CLI 進行連線。

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

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

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

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

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

  6. 如果有選擇,請選取要連線的 IP 位址。否則,系統會自動選取 IP 位址。

  7. 針對使用者名稱,請驗證使用者名稱。

  8. 選擇連線以建立連線。瀏覽器內的終端機視窗隨即開啟。

使用 連線 AWS CLI

您可以使用 ec2-instance-connect AWS CLI ,透過 SSH 用戶端連線至執行個體。EC2 Instance Connect 會根據指定的連線類型,嘗試以預先定義的順序使用可用的 IP 位址建立連線。如果 IP 位址無法使用,系統會自動嘗試排序的下一個 IP 位址。

連線類型
auto (default)

EC2 Instance Connect 會嘗試依下列順序使用執行個體的 IP 位址並使用對應的連線類型進行連線:

  1. 公有 IPv4:direct

  2. 私有 IPv4:eice

  3. 公有 IPv6:direct

direct

EC2 Instance Connect 會嘗試依下列順序使用執行個體的 IP 位址進行連線:

  1. 公有 IPv4

  2. 公有 IPv6

  3. 私有 IPv4 (不會透過 EC2 Instance Connect Endpoint 連線)

eice

EC2 Instance Connect 會嘗試使用執行個體的私有 IPv4 地址及 EC2 Instance Connect Endpoint 進行連線。

注意

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

使用 ec2-instance-connect AWS CLI時,不支援連線至私有 IPv6 地址。

要求

您必須使用第 2 AWS CLI 版。如需詳細資訊,請參閱安裝或更新最新版本的 AWS CLI

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

如果您只知道執行個體 ID,並希望讓 EC2 Instance Connect 決定連線到執行個體時要使用的連線類型,則請使用 ec2-instance-connect CLI 並指定 ssh 命令和執行個體 ID。

aws ec2-instance-connect ssh --instance-id i-1234567890example
使用執行個體 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
提示

如果您在使用這些命令時發生錯誤,請確定您使用的是第 2 AWS CLI 版,因為該ssh命令僅適用於此主要版本。我們也建議定期更新至 AWS CLI 版本 2 的最新次要版本,以存取最新功能。如需相關資訊,請參閱「AWS Command Line Interface 使用者指南」中的關於 AWS CLI 第 2 版

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

當您使用 EC2 Instance Connect API 時,您可以使用自己的 SSH 金鑰和從您選擇的 SSH 用戶端連接執行個體。這可讓您從 EC2 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

疑難排解

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