View a markdown version of this page

在 EC2 執行個體上安裝 EC2 Instance Connect - Amazon Elastic Compute Cloud

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

在 EC2 執行個體上安裝 EC2 Instance Connect

若要使用 EC2 Instance Connect 連線至 Linux 執行個體,則該執行個體必須安裝 EC2 Instance Connect。安裝 EC2 Instance Connect 會在執行個體上設定 SSH 常駐程式。

如需 EC2 Instance Connect 套件的詳細資訊,請參閱 GitHub 網站上的aws/aws-ec2-instance-connect-config。

注意

如果您對 SSH 身分驗證設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,則 EC2 Instance Connect 安裝不會進行更新。因此,您無法使用 EC2 Instance Connect。

安裝先決條件

在安裝 EC2 Instance Connect 之前,請確定您符合下列先決條件。

  • 確認執行個體使用下列其中一項:

    • Amazon Linux 2 在 2.0.20190618 之前的版本 *

    • AL2023 最小 AMI 或 Amazon ECS 最佳化 AMI

    • CentOS Stream 8 和 9

    • 14.2.1 之前的 macOS Sonoma、13.6.3 之前的 Ventura,以及 12.7.2 之前的 Monterey *

    • Red Hat Enterprise Linux (RHEL) 8 和 9

    • Ubuntu 16.04 和 18.04 *

    提示

    * 針對 Amazon Linux 2、macOS 與 Ubuntu:若使用比上述更新的版本來啟動執行個體,EC2 Instance Connect 已預先安裝,無須手動安裝。

  • 驗證 EC2 Instance Connect 的一般先決條件。

    如需詳細資訊,請參閱EC2 Instance Connect 的先決條件。

  • 確認在本機電腦上使用 SSH 用戶端連線至執行個體的先決條件。

    如需詳細資訊,請參閱使用 SSH 連線至您的 Linux 執行個體。

  • 取得執行個體的 ID。

    您可以使用 Amazon EC2 主控台取得執行個體的 ID (從執行個體 ID 資料欄中)。如果您願意的話,可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (AWS Tools for Windows PowerShell) 命令。

手動安裝 EC2 Instance Connect

注意

如果您使用下列其中一個 AMI 啟動執行個體,則會預先安裝 EC2 Instance Connect,您可以略過此程序:

  • AL2023 標準 AMI

  • Amazon Linux 2 2.0.20190618 或更新版本

  • macOS Sonoma 14.2.1 或更新版本

  • macOS Ventura 13.6.3 或更新版本

  • macOS Monterey 12.7.2 或更新版本

  • Ubuntu 20.04 或更新版本

根據執行個體的作業系統,使用以下其中一種程序來安裝 EC2 Instance Connect。

Amazon Linux 2
若要在使用 Amazon Linux 2 啟動的執行個體上安裝 EC2 Instance Connect
  1. 使用 SSH 連接至您的執行個體。

    將以下命令中的範例值取代為您自己的值。使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對與您在啟動執行個體所用的 AMI 預設使用者名稱。Amazon Linux 2 的預設使用者名稱為 ec2-user。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    如需連線至執行個體的詳細資訊,請參閱使用 SSH 用戶端連接至 Linux 執行個體。

  2. 在執行個體上安裝 EC2 Instance Connect 套件。

    [ec2-user ~]$ sudo yum install ec2-instance-connect

    您應會在 /opt/aws/bin/ 資料夾中看到三個新指令碼:

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  3. (選用) 確認 EC2 Instance Connect 是否已順利安裝在您的執行個體上。

    [ec2-user ~]$ sudo less /etc/ssh/sshd_config

    如果 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser 行包含以下值,則 EC2 Instance Connect 的安裝已順利完成:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand 會設定 eic_run_authorized_keys 指令碼來從執行個體中繼資料查閱金鑰

    • AuthorizedKeysCommandUser 會將系統使用者設為 ec2-instance-connect

    注意

    如果您先前已設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,EC2 Instance Connect 安裝不會變更這些值且您將無法使用 EC2 Instance Connect。

CentOS
若要在使用 CentOS 啟動的執行個體上安裝 EC2 Instance Connect
  1. 使用 SSH 連接至您的執行個體。

    將以下命令中的範例值取代為您自己的值。使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對與您在啟動執行個體所用的 AMI 預設使用者名稱。若使用 CentOS,使用者名稱預設為 centos 或 ec2-user。

    $ ssh -i my_ec2_private_key.pem centos@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    如需連線至執行個體的詳細資訊,請參閱使用 SSH 用戶端連接至 Linux 執行個體。

  2. 如果您使用 HTTP 或 HTTPS 代理伺服器,則必須在目前的 Shell 工作階段中設定 http_proxy 或 https_proxy 環境變數。

    如果您不使用代理伺服器,則可以略過此步驟。

    • 若使用 HTTP 代理伺服器,請執行下列命令:

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • 若使用 HTTPS 代理伺服器,請執行下列命令:

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. 執行下列命令,在執行個體上安裝 EC2 Instance Connect 套件。

    適用於 CentOS 的 EC2 執行個體 Connect 組態檔案是以 Red Hat Package Manager (RPM) 套件提供,搭配以下項目適用的不同 RPM 套件:CentOS 8 和 CentOS 9,以及在 Intel /AMD (x86_64) 或 ARM (AArch64) 上執行的執行個體類型。

    為您的作業系統和 CPU 架構使用命令區塊。

    • CentOS 8

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
    • CentOS 9

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

    您應會在 /opt/aws/bin/ 資料夾中看到以下新指令碼:

    eic_run_authorized_keys
  4. (選用) 確認 EC2 Instance Connect 是否已順利安裝在您的執行個體上。

    • CentOS 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
    • CentOS 9:

      [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    如果 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser 行包含以下值,則 EC2 Instance Connect 的安裝已順利完成:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand 會設定 eic_run_authorized_keys 指令碼來從執行個體中繼資料查閱金鑰

    • AuthorizedKeysCommandUser 會將系統使用者設為 ec2-instance-connect

    注意

    如果您先前已設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,EC2 Instance Connect 安裝不會變更這些值且您將無法使用 EC2 Instance Connect。

macOS
若要在使用 macOS 啟動的執行個體上安裝 EC2 Instance Connect
  1. 使用 SSH 連接至您的執行個體。

    將以下命令中的範例值取代為您自己的值。使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對與您在啟動執行個體所用的 AMI 預設使用者名稱。macOS 執行個體的預設使用者名稱為 ec2-user。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    如需連線至執行個體的詳細資訊,請參閱使用 SSH 用戶端連接至 Linux 執行個體。

  2. 使用以下命令更新 Homebrew。更新將列出 Homebrew 已知的軟體。EC2 Instance Connect 套件是透過 macOS 執行個體上的 Homebrew 提供。如需詳細資訊,請參閱 更新 Amazon EC2 Mac 執行個體上的作業系統和軟體。

    [ec2-user ~]$ brew update
  3. 在執行個體上安裝 EC2 Instance Connect 套件。這會安裝軟體,並設定 sshd 以使用該軟體。

    [ec2-user ~]$ brew install ec2-instance-connect

    您應會在 /opt/aws/bin/ 資料夾中看到以下新指令碼:

    eic_run_authorized_keys
  4. (選用) 確認 EC2 Instance Connect 是否已順利安裝在您的執行個體上。

    [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    如果 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser 行包含以下值,則 EC2 Instance Connect 的安裝已順利完成:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand 會設定 eic_run_authorized_keys 指令碼來從執行個體中繼資料查閱金鑰

    • AuthorizedKeysCommandUser 會將系統使用者設為 ec2-instance-connect

    注意

    如果您先前已設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,EC2 Instance Connect 安裝不會變更這些值且您將無法使用 EC2 Instance Connect。

RHEL
若要在使用 Red Hat Enterprise Linux (RHEL) 啟動的執行個體上安裝 EC2 Instance Connect
  1. 使用 SSH 連接至您的執行個體。

    將以下命令中的範例值取代為您自己的值。使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對與您在啟動執行個體所用的 AMI 預設使用者名稱。RHEL 的預設使用者名稱為 ec2-user 或 root。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    如需連線至執行個體的詳細資訊,請參閱使用 SSH 用戶端連接至 Linux 執行個體。

  2. 如果您使用 HTTP 或 HTTPS 代理伺服器,則必須在目前的 Shell 工作階段中設定 http_proxy 或 https_proxy 環境變數。

    如果您不使用代理伺服器,則可以略過此步驟。

    • 若使用 HTTP 代理伺服器,請執行下列命令:

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • 若使用 HTTPS 代理伺服器,請執行下列命令:

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. 執行下列命令,在執行個體上安裝 EC2 Instance Connect 套件。

    適用於 RHEL 的 EC2 執行個體 Connect 組態檔案是以 Red Hat Package Manager (RPM) 套件提供,搭配以下項目適用的不同 RPM 套件:RHEL 8 和 RHEL 9,以及在 Intel /AMD (x86_64) 或 ARM (AArch64) 上執行的執行個體類型。

    為您的作業系統和 CPU 架構使用命令區塊。

    • RHEL 8

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
    • RHEL 9

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

    您應會在 /opt/aws/bin/ 資料夾中看到以下新指令碼:

    eic_run_authorized_keys
  4. (選用) 確認 EC2 Instance Connect 是否已順利安裝在您的執行個體上。

    • 針對 RHEL 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
    • 針對 RHEL 9:

      [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    如果 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser 行包含以下值,則 EC2 Instance Connect 的安裝已順利完成:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand 會設定 eic_run_authorized_keys 指令碼來從執行個體中繼資料查閱金鑰

    • AuthorizedKeysCommandUser 會將系統使用者設為 ec2-instance-connect

    注意

    如果您先前已設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,EC2 Instance Connect 安裝不會變更這些值且您將無法使用 EC2 Instance Connect。

Ubuntu
若要在使用 Ubuntu 16.04 或更新版本啟動的執行個體上安裝 EC2 Instance Connect
  1. 使用 SSH 連接至您的執行個體。

    將以下命令中的範例值取代為您自己的值。使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對並使用您在啟動執行個體所用的 AMI 預設使用者名稱。若為 Ubuntu AMI,使用者名稱為 ubuntu。

    $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    如需連線至執行個體的詳細資訊,請參閱使用 SSH 用戶端連接至 Linux 執行個體。

  2. (選用) 請確認您的執行個體具有最新的 Ubuntu AMI。

    執行下列命令以更新您的執行個體上的所有套件。

    ubuntu:~$ sudo apt-get update
    ubuntu:~$ sudo apt-get upgrade
  3. 在執行個體上安裝 EC2 Instance Connect 套件。

    ubuntu:~$ sudo apt-get install ec2-instance-connect

    您應會在 /usr/share/ec2-instance-connect/ 資料夾中看到三個新指令碼:

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  4. (選用) 確認 EC2 Instance Connect 是否已順利安裝在您的執行個體上。

    ubuntu:~$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

    如果 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser 行包含以下值,則 EC2 Instance Connect 的安裝已順利完成:

    AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand 會設定 eic_run_authorized_keys 指令碼來從執行個體中繼資料查閱金鑰

    • AuthorizedKeysCommandUser 會將系統使用者設為 ec2-instance-connect

    注意

    如果您先前已設定 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser,EC2 Instance Connect 安裝不會變更這些值且您將無法使用 EC2 Instance Connect。