使用 SSH 客户端连接到 Linux 实例
使用 Secure Shell(SSH)可以从本地计算机连接到 Linux 实例。有关其他选项的更多信息,请参阅连接到您的 EC2 实例。
注意
如果您在尝试连接到您的实例时收到错误,请确保您的实例满足所有 SSH 连接先决条件 要求。如果它满足所有先决条件,但您仍然无法连接到 Linux 实例,请参阅排查 Amazon EC2 Linux 实例的连接问题。
SSH 连接先决条件
使用 SSH 连接到 Linux 实例之前,请先完成以下任务。
- 完成一般先决条件。
-
-
检查您的实例是否通过了状态检查。可能需要花几分钟时间,实例才能准备好接受连接请求。有关更多信息,请参阅 查看状态检查。
-
- 允许来自您 IP 地址的入站 SSH 流量。
-
确保与您的实例关联的安全组允许来自您的 IP 地址的入站 SSH 流量。有关更多信息,请参阅 用于从您的计算机连接到实例的规则。
- 在本地计算机上安装 SSH 客户端(如果需要)。
-
您的本地计算机可能已默认安装了 SSH 客户端。在终端窗口输入以下命令可以验证该情况。如果计算机无法识别该命令,则必须安装 SSH 客户端。
ssh
以下是适用于 Windows 的一些可能选项。如果计算机运行别的操作系统,请参阅相应操作系统的文档来了解 SSH 客户端选项。
在 Windows 上安装 OpenSSH 后,即可使用 SSH 从 Windows 计算机连接到 Linux 实例。开始操作之前,务必确认已满足以下要求。
- Windows 版本
-
计算机上的 Windows 版本必须是 Windows Server 2019 或更高版本。
若为较早版本的 Windows,请改为下载并安装 Win32-OpenSSH
。 - PowerShell 要求
-
若要在 Windows 操作系统上使用 PowerShell 安装 OpenSSH,您必须运行 PowerShell 版本 5.1 或更高版本,并且您的账户必须是内置管理员组的成员。在 PowerShell 中运行
$PSVersionTable.PSVersion
以查看 PowerShell 版本。若要查看您是否是内置管理员组的成员,请运行以下 PowerShell 命令:
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
如果您是内置管理员组的成员,则输出为
True
。
若要使用 PowerShell 安装适用于 Windows 的 OpenSSH,请运行以下 PowerShell 命令。
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
下面是示例输出。
Path :
Online : True
RestartNeeded : False
若要使用 PowerShell 将 OpenSSH 从 Windows 卸载,请运行以下 PowerShell 命令。
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
下面是示例输出。
Path :
Online : True
RestartNeeded : True
在 Windows 上安装 WSL 后,即可使用 Linux 命令行工具(例如 SSH 客户端)从 Windows 计算机连接到 Linux 实例。
按照在 EC2 Windows 实例上安装适用于 Linux 的 Windows 子系统中的说明进行操作。如果您按照 Microsoft 安装指南中的说明进行操作,他们会安装 Linux 的 Ubuntu 发行版。如果愿意,您可以安装不同的 Linux 发行版。
在 WSL 终端窗口中,将 .pem
文件(适用于您在启动时为实例指定的密钥对)从 Windows 复制到 WSL。记下在连接到实例时要使用的 WSL 上的 .pem
文件的完全限定路径。有关如何指定 Windows 硬盘的路径的信息,请参阅如何访问我的 C 驱动器?
cp /mnt/
<Windows drive letter>/path/my-key-pair
.pem ~/WSL-path/my-key-pair
.pem
有关卸载 Windows Subsystem for Linux 的信息,请参阅如何卸载 WSL 发行版?
使用 SSH 客户端连接到 Linux 实例
通过以下过程使用 SSH 客户端连接到您的 Linux 实例。
使用 SSH 客户端连接到实例
-
在计算机上打开终端窗口。
-
使用 ssh 命令连接到实例。此时需要用到在先决条件中收集的有关实例的详细信息。例如,您需要私有密钥(
.pem
文件)的位置、用户名以及公有 DNS 名称或 IPv6 地址。以下是命令示例。-
(公有 DNS)要使用公有 DNS 名称,请输入以下命令。
ssh -i
/path/key-pair-name
.peminstance-user-name
@instance-public-dns-name
-
(IPv6)或者,如果实例具有 IPv6 地址,请输入以下命令来使用 IPv6 地址。
ssh -i
/path/key-pair-name
.peminstance-user-name
@instance-IPv6-address
以下为响应示例。
The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established. ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY. Are you sure you want to continue connecting (yes/no)?
-
-
(可选)验证安全警报中的指纹是否与该指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施中间人攻击。如果匹配,请继续到下一步。有关更多信息,请参阅获取实例指纹。
-
输入
yes
。您会看到如下响应:
Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.