连接到您的 Linux 实例
有许多方法可以连接到您的 Linux 实例。有些会根据您连接的本地计算机的操作系统而有所不同。其他则不会改变,如 EC2 Instance Connect 或 AWS Systems Manager 会话管理器。在本节中,您可以学习如何连接到 Linux 实例,以及如何在本地计算机和实例之间传输文件。有关如何连接到 Windows 实例的信息,请参阅《适用于 Windows 实例的 Amazon EC2 用户指南》中的连接到 Windows 实例。
在连接到 Linux 实例之前,请先完成以下先决条件:
然后,选择以下其中一个选项来连接您的 Linux 实例。
基于本地操作系统的连接选项
从任何本地操作系统进行连接的选项
注意
有关实例连接故障排除提示,请参阅排查实例的连接问题。。
要排查基于 AWS Nitro System
获取有关您的实例的信息
要准备连接到实例,请通过 Amazon EC2 控制台或使用 AWS CLI 获取以下信息。

-
获取实例的公有 DNS 名称。
您可以从 Amazon EC2 控制台获取实例的公有 DNS。查看实例窗格的公有 IPv4 DNS 列。如果此列已隐藏,请选择屏幕右上角的设置图标(
),然后选择公有 IPv4 DNS。您也可以在实例窗格的实例信息部分找到公有 DNS。在 Amazon EC2 控制台的实例窗格中选择实例时,有关该实例的信息将显示在页面的下半部分。在详细信息选项卡下,查找公有 IPv4 DNS。
如果您愿意,也可以使用 describe-instances(AWS CLI)或 Get-EC2Instance(AWS Tools for Windows PowerShell)命令。
如果未显示公有 IPv4 DNS,请验证实例状态是否正在运行,并确保您没有在私有子网中启动实例。如果您使用启动实例向导来启动实例,则可能已编辑网络设置下的自动分配公有 IP 字段,并且已将值更改为禁用。如果您禁用自动分配公有 IP 选项,则启动实例后不会为其分配公有 IP 地址。
-
(仅限 IPv6)获取实例的 IPv6 地址。
如果您已为实例分配 IPv6 地址,则可以选择使用 IPv6 地址代替公有 IPv4 地址或公有 IPv4 DNS 主机名,以连接到实例。您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。您可以从 Amazon EC2 控制台获取实例的 IPv6 地址。请查看实例窗格的 IPv6 IP 列。或者,您可以在实例信息部分找到 IPv6 地址。在 Amazon EC2 控制台的实例窗格中选择实例时,有关该实例的信息将显示在页面的下半部分。在详细信息选项卡下,查找 IPv6 地址。
如果您愿意,也可以使用 describe-instances(AWS CLI)或 Get-EC2Instance(AWS Tools for Windows PowerShell)命令。有关 IPv6 的更多信息,请参阅 IPv6 地址。
获取实例的用户名。
您可以使用用户账户的用户名或用于启动实例的 AMI 的默认用户名连接到实例。
-
获取用户账户的用户名。
有关如何创建用户账户的更多信息,请参阅管理 Linux 实例上的用户。
-
获取用于启动实例的 AMI 的默认用户名:
用于启动实例的 AMI 默认用户名 Amazon Linux 2023
Amazon Linux 2
Amazon Linux
ec2-user
CentOS centos
或ec2-user
Debian admin
Fedora fedora
或ec2-user
RHEL ec2-user
或root
SUSE ec2-user
或root
Ubuntu ubuntu
Oracle ec2-user
Bitnami bitnami
Rocky Linux rocky
其他 检查 AMI 提供程序
-
查找私有密钥并设置权限
您必须知道私有密钥文件的位置,才能连接到实例。对于 SSH 连接,必须设置权限,以确保只有您可以读取文件。
有关使用 Amazon EC2 时密钥对工作原理的信息,请参阅 Amazon EC2 密钥对和 Linux 实例。
查找私有密钥
获取适用于启用实例时所指定密钥对的
.pem
文件在电脑上的全限定路径。有关更多信息,请参阅确定启动时指定的公有密钥。如果找不到私有密钥文件,请参阅我丢失了私有密钥。我怎样才能连接到我的 Linux 实例?如果您使用 Putty 连接到实例并且需要将
.pem
文件转换为.ppk
,请参阅本部分 使用 PuTTY 从 Windows 连接到 Linux 实例 主题中的 使用 PuTTYgen 转换私有密钥。-
设置私有密钥文件的权限,以确保只有您可以读取该文件
从 macOS 或 Linux 进行连接
如果您计划在 macOS 或 Linux 计算机上使用 SSH 客户端连接到 Linux 实例,请使用以下命令设置私有密钥文件的权限,以确保只有您可以读取该文件。
chmod 400
key-pair-name
.pem如果不设置这些权限,则无法使用此密钥对连接到实例。有关更多信息,请参阅错误:未保护的私有密钥文件。
从 Windows 进行连接
打开“文件资源管理器”,然后右键单击
.pem
文件。依次选择属性 > 安全选项卡,然后选择高级。选择禁用继承。删除对所有用户(当前用户除外)的访问权限。
(可选)获取实例指纹
要防范中间人攻击,您可以在连接实例时验证实例指纹。如果您从第三方提供的公有 AMI 启动实例,验证指纹将很有用。
任务概述
首先,获取实例指纹。连接到实例后,系统会提示您验证指纹。将已获取的指纹与显示的指纹进行比较。如果指纹不匹配,则表示有人可能在试图实施中间人攻击。如果二者匹配,则您可以放心地连接到您的实例。
获取实例指纹的先决条件
-
要获取实例指纹,您必须使用 AWS CLI。有关安装 AWS CLI 的信息,请参阅 AWS Command Line Interface 用户指南中的安装 AWS Command Line Interface。
-
实例不能处于
pending
状态。只有在第一次引导实例完成后,才能使用指纹。
获取实例指纹
-
在本地计算机上(而不是正在连接的实例上),按以下方式使用 get-console-output(AWS CLI)命令以获取实例指纹。您必须为实例拥有者,才能获取控制台输出。如果输出过大,可将输出通过管道传输到文本文件,文本形式可能更易于阅读。请注意,使用 AWS CLI 时,必须明确指定或通过设置默认区域来指定 AWS 区域。有关如何设置或指定区域的信息,请参阅《AWS Command Line Interface 用户指南》中的配置基础知识。
aws ec2 get-console-output --instance-id
instance_id
--output text >temp.txt
-
以下示例输出显示了运行 get-console-output 命令时应查找的内容。确切的输出可能因操作系统、AMI 版本以及是否是由 AWS 创建密钥对而异。
ec2: ############################################################# ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- ec2: 1024 SHA256:7HItIgTONZ/b0CH9c5Dq1ijgqQ6kFn86uQhQ5E/F9pU root@ip-10-0-2-182 (DSA) ec2: 256 SHA256:l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY root@ip-10-0-2-182 (ECDSA) ec2: 256 SHA256:kpEa+rw/Uq3zxaYZN8KT501iBtJOIdHG52dFi66EEfQ no comment (ED25519) ec2: 2048 SHA256:L8l6pepcA7iqW/jBecQjVZClUrKY+o2cHLI0iHerbVc root@ip-10-0-2-182 (RSA) ec2: -----END SSH HOST KEY FINGERPRINTS----- ec2: #############################################################