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

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

若要使用 EC2 Instance Connect 連線至執行個體,則該執行個體必須安裝 EC2 Instance Connect。

下列 AMI 已預先安裝 EC2 Instance Connect:

  • Amazon Linux 2023

  • Amazon Linux 2 2.0.20190618 或更新版本

  • Ubuntu 20.04 或更新版本

如果使用其中一個 AMI 啟動執行個體,則可以略過此程序。

注意

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

安裝 EC2 Instance Connect 的先決條件
  • 使用下列其中一個支援的 AMI 啟動執行個體:

    Amazon Linux 2 (任何版本)

    Ubuntu 16.04 或更新版本

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

    如需詳細資訊,請參閱 先決條件

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

    如果本機電腦是 Linux 或 macOS,請參閱 使用 SSH 從 Linux 或 macOS 連線至 Linux 執行個體。如果本機電腦是 Windows,請參閱 先決條件

    如需詳細資訊,請參閱 SSH 連線先決條件

  • 取得執行個體的 ID。

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

  • 在本機電腦安裝 SSH 用戶端。

    根據預設,您的本機電腦很可能已安裝 SSH 用戶端。您可以藉由在命令列鍵入 ssh 來檢查 SSH 用戶端。若您的本機電腦無法識別該命令,您可以安裝 SSH 用戶端。如需在 Linux 或 macOS X 上安裝 SSH 用戶端的相關資訊,請參閱 http://www.openssh.com。如需在 Windows 10 上安裝 SSH 用戶端的相關資訊,請參閱 Windows 中的 OpenSSH

  • (Ubuntu) 在執行個體上安裝 AWS CLI。

    若要在 Ubuntu 執行個體上安裝 EC2 Instance Connect,您必須在執行個體上使用 AWS CLI。如需有關安裝 AWS CLI 的詳細資訊,請參閱 AWS Command Line Interface 使用者指南中的安裝 AWS CLI

安裝 Instance Connect 會在執行個體上設定 SSH 協助程式。Instance Connect 的安裝程序與使用 Amazon Linux 2 和 Ubuntu 啟動的執行個體不同。

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

    使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對與您在啟動執行個體所用的 AMI 預設使用者名稱。Amazon Linux 2 的預設使用者名稱為 ec2-user

    例如,如果執行個體的啟動方式是 Amazon Linux 2,執行個體的公有 DNS 名稱是 ec2-a-b-c-d.us-west-2.compute.amazonaws.com,金鑰對是 my_ec2_private_key.pem,則使用以下命令來透過 SSH 連接至執行個體:

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

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

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

    若是 Amazon Linux 2,則使用 yum install 命令。

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

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

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

    使用 sudo less 命令來確認是否如下正確更新 /etc/ssh/sshd_config 檔案:

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

    如果 AuthorizedKeysCommand 檔案中的 AuthorizedKeysCommandUser/etc/ssh/sshd_config 行包含以下值,則 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

    注意

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

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

    使用在您啟動執行個體時指派至該執行個體的 SSH 金鑰對並使用您在啟動執行個體所用的 AMI 預設使用者名稱。若為 Ubuntu AMI,使用者名稱為 ubuntu

    如果執行個體的啟動方式是 Ubuntu,執行個體的公有 DNS 名稱是 ec2-a-b-c-d.us-west-2.compute.amazonaws.com,金鑰對是 my_ec2_private_key.pem,則使用以下命令來透過 SSH 連接至執行個體:

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

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

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

    針對 Ubuntu,使用下列命令以更新您的執行個體上的所有套件。

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

    對於 Ubuntu,使用 sudo apt-get 命令。

    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. (選用) 確認 Instance Connect 是否已順利安裝在您的執行個體上。

    使用 sudo less 命令來確認是否如下正確更新 /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

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

    如果 AuthorizedKeysCommand 檔案中的 AuthorizedKeysCommandUser/lib/systemd/system/ssh.service.d/ec2-instance-connect.conf 行包含以下值,則 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

    注意

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

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