Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
在您的 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(从 Instance ID (实例 ID) 列)。如果您愿意,可以使用 describe-instances (Amazon CLI) 或 Get-EC2Instance (Amazon Tools for Windows PowerShell) 命令。
-
在您的本地计算机上安装 SSH 客户端。
您的本地计算机很可能已默认安装 SSH 客户端。您可以通过在命令行键入 ssh 来检查 SSH 客户端。如果您的本地计算机无法识别该命令,您可安装 SSH 客户端。有关在 Linux 或 macOS X 上安装 SSH 客户端的信息,请参阅 http://www.openssh.com。有关在 Windows 10 上安装 SSH 客户端的信息,请参阅 Windows 中的 OpenSSH。
-
[Ubuntu] 在实例上安装 Amazon CLI。
要在 Ubuntu 实例上安装 EC2 Instance Connect,您必须在实例上使用 Amazon CLI。有关安装 Amazon CLI 的信息,请参阅《Amazon Command Line Interface 用户指南》中的安装 Amazon CLI。
安装 Instance Connect 将在实例上配置 SSH 守护程序。对于使用 Amazon Linux 2 和 Ubuntu 启动的实例,安装 Instance Connect 的过程是不同的。
- 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。