使用 SSH 客户端连接到 Linux 实例 - Amazon Elastic Compute Cloud

使用 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 客户端连接到实例
  1. 在计算机上打开终端窗口。

  2. 使用 ssh 命令连接到实例。此时需要用到在先决条件中收集的有关实例的详细信息。例如,您需要私有密钥(.pem 文件)的位置、用户名以及公有 DNS 名称或 IPv6 地址。以下是命令示例。

    • (公有 DNS)要使用公有 DNS 名称,请输入以下命令。

      ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
    • (IPv6)或者,如果实例具有 IPv6 地址,请输入以下命令来使用 IPv6 地址。

      ssh -i /path/key-pair-name.pem instance-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)?
  3. (可选)验证安全警报中的指纹是否与该指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施中间人攻击。如果匹配,请继续到下一步。有关更多信息,请参阅获取实例指纹

  4. 输入 yes

    您会看到如下响应:

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.