使用 SSH 从 Linux 或 macOS 连接到 Linux 实例 - Amazon Elastic Compute Cloud

使用 SSH 从 Linux 或 macOS 连接到 Linux 实例

您可以使用 Secure Shell (SSH) 从运行 Linux 或 macOS 操作系统的本地计算机连接到您的 Linux 实例,也可以使用独立于平台的连接工具,例如 EC2 Instance Connect 或 AWS Systems Manager 会话管理器。如需详细了解独立于平台的工具,请参阅 连接到您的 Linux 实例

本页介绍如何使用 SSH 客户端连接到您的实例。如需从 Windows 连接到 Linux 实例,请参阅 从 Windows 进行连接

注意

如果您在尝试连接到您的实例时收到错误,请确保您的实例满足所有 SSH 连接先决条件 要求。如果它满足所有先决条件,但您仍然无法连接到 Linux 实例,请参阅排查 Linux 实例的连接问题

SSH 连接先决条件

在连接到 Linux 实例之前,请先完成以下先决条件:

检查实例状态

启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查您的实例是否通过了状态检查。您可以在实例页面的状态检查列中查看此信息。

获取公有 DNS 名称和用户名以连接到您的实例

要查找实例的公有 DNS 名称或 IP 地址以及您在连接到实例时应使用的用户名,请参阅获取有关您的实例的信息

查找私有密钥并设置权限

要查找连接到您的实例所需的私有密钥并设置密钥权限,请参阅 查找私有密钥并设置权限

根据需要在您的本地计算机上安装 SSH 客户端

您的本地计算机可能已默认安装了 SSH 客户端。您可以通过在命令行中键入 ssh 来验证这一点。如果您的计算机无法识别该命令,可安装 SSH 客户端。

  • 最新版本的 Windows Server 2019 和 Windows 10 – OpenSSH 作为可安装组件包括在内。有关信息,请参阅 Windows 中的 OpenSSH

  • 较早版本的 Windows – 下载并安装 OpenSSH。有关更多信息,请参阅 Win32-OpenSSH

  • Linux 和 macOS X – 下载并安装 OpenSSH。有关更多信息,请参阅 https://www.openssh.com

使用 SSH 客户端连接到 Linux 实例

通过以下过程使用 SSH 客户端连接到您的 Linux 实例。如果您在尝试连接到实例时收到错误,请参阅 排查 Linux 实例的连接问题

使用 SSH 连接到您的实例
  1. 在终端窗口中,使用 ssh 命令连接到该实例。您指定私有密钥的路径和文件名 (.pem)、实例的用户名以及实例的公有 DNS 名称或 IPv6 地址。有关如何查找私有密钥、实例的用户名以及实例的 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)?
  2. (可选) 验证安全警报中的指纹是否与您之前在 (可选)获取实例指纹 中获得的指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施中间人攻击。如果匹配,请继续到下一步。

  3. 输入 yes

    您会看到如下响应:

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

使用 SCP 客户端将文件传输到 Linux 实例

在您的本地计算机与 Linux 实例之间传输文件的一种方法是使用安全复制协议 (SCP)。本节介绍了如何使用 SCP 传输文件。该步骤与使用 SSH 连接到实例的步骤类似。

先决条件

以下过程将指导您使用实例的公有 DNS 名称或 IPv6 地址(如果实例具有该地址),通过 SCP 传输文件。

使用 SCP 在您的计算机和实例之间传输文件
  1. 确定源文件在计算机上的位置以及在实例上的目标路径。在以下示例中,私有密钥文件的名称是 key-pair-name.pem,要传输的文件是 my-file.txt,实例的用户名是 ec2-user,实例的公有 DNS 名称是 instance-public-dns-name,实例的 IPv6 地址是 instance-IPv6-address

    • (公有 DNS)要将文件传输到实例上的目标位置,请在计算机中输入以下命令。

      scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
    • (IPv6) 如果实例具有 IPv6 地址,要将文件传输到实例上的目标位置,请在计算机中输入以下命令。IPv6 地址必须用方括号 ([ ]) 括起来,并且必须对方括号进行转义 (\)。

      scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[instance-IPv6-address\]:path/
  2. 如果您尚未使用 SSH 连接到实例,则会看到如下响应:

    The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
    can't be established.
    RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
    Are you sure you want to continue connecting (yes/no)?

    (可选)您可以选择验证安全警报中的指纹是否与实例指纹匹配。有关更多信息,请参阅(可选)获取实例指纹

    输入 yes

  3. 如果传输成功,则响应的形式与下方类似:

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
    to the list of known hosts.
    my-file.txt                                100%   480     24.4KB/s   00:00
  4. 要在另一个方向上传输文件(从 Amazon EC2 实例中传输到计算机),请颠倒主机参数的顺序。例如,您可以将 my-file.txt 从 EC2 实例传输到本地计算机上的目标位置,保存为 my-file2.txt,如以下示例所示。

    • (公有 DNS)要将文件传输到计算机中的目标位置,请在计算机中输入以下命令。

      scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
    • (IPv6) 如果实例具有 IPv6 地址,要将文件传输到计算机中的目标位置,请在计算机中输入以下命令。IPv6 地址必须用方括号 ([ ]) 括起来,并且必须对方括号进行转义 (\)。

      scp -i /path/key-pair-name.pem ec2-user@\[instance-IPv6-address\]:path/my-file.txt path/my-file2.txt