在 EC2 執行個體上安裝 EC2 Instance Connect
若要使用 EC2 Instance Connect 連線至執行個體,則該執行個體必須安裝 EC2 Instance Connect。
下列 AMI 已預先安裝 EC2 Instance Connect:
如果使用其中一個 AMI 啟動執行個體,則可以略過此程序。
如果您對 SSH 身分驗證設定 AuthorizedKeysCommand
和 AuthorizedKeysCommandUser
,則 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
-
使用 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 執行個體。
-
在執行個體上安裝 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
-
(選用) 確認 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
和 AuthorizedKeysCommandUser
,Instance Connect 安裝不會變更這些值且您將無法使用 Instance Connect。
- Ubuntu
-
若要在使用 Ubuntu 16.04 或更新版本啟動的執行個體上安裝 EC2 Instance Connect
-
使用 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 執行個體。
-
(選用) 請確認您的執行個體具有最新的 Ubuntu AMI。
針對 Ubuntu,使用下列命令以更新您的執行個體上的所有套件。
ubuntu:~$
sudo apt-get update
ubuntu:~$
sudo apt-get upgrade
-
在執行個體上安裝 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
-
(選用) 確認 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
和 AuthorizedKeysCommandUser
,Instance Connect 安裝不會變更這些值且您將無法使用 Instance Connect。
如需 EC2 Instance Connect 套件的詳細資訊,請參閱 GitHub 網站上的aws/aws-ec2-instance-connect-config。