Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)

使用 SSH 连接到 Linux 实例

以下说明介绍如何使用 SSH 客户端连接到您的实例。如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题

启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它。

注意

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

先决条件

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

  • 验证有关连接到您的实例的常规先决条件。

    有关更多信息,请参阅 连接到您的实例的常规先决条件

  • 在您的本地计算机上安装 SSH 客户端。

    您的本地计算机很可能已默认安装 SSH 客户端。您可以通过在命令行键入 ssh 来检查 SSH 客户端。如果您的本地计算机无法识别该命令,您可安装 SSH 客户端。有关在 Linux 或 macOS X 上安装 SSH 客户端的信息,请参阅 http://www.openssh.com。有关在 Windows 10 上安装 SSH 客户端的信息,请参阅 Windows 中的 OpenSSH

连接到 Linux 实例

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

使用 SSH 连接到您的实例

  1. 在终端窗口中,使用 ssh 命令连接到该实例。您将指定私有密钥 (.pem) 文件和 user_name@public_dns_name。例如,如果您使用了 Amazon Linux 2 或 Amazon Linux AMI,则用户名为 ec2-user

    ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

    您会看到如下响应:

    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)?
  2. (仅限 IPv6) 或者,您可以使用 IPv6 地址连接到实例。请在 ssh 命令中指定私有密钥 (.pem) 文件路径、适当的用户名和 IPv6 地址。例如,如果您使用了 Amazon Linux 2 或 Amazon Linux AMI,则用户名为 ec2-user

    ssh -i /path/my-key-pair.pem ec2-user@2001:db8:1234:1a00:9691:9503:25ad:1761
  3. (可选) 验证安全警报中的指纹是否与您之前在 (可选)获取实例指纹 中获得的指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。

  4. 输入 yes

    您会看到如下响应:

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

使用 SCP 将文件从 Linux 传输到 Linux 实例

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

先决条件

  • 验证有关将文件传输到您的实例的常规先决条件。

    将文件传输到实例的常规先决条件与连接到实例的常规先决条件相同。有关更多信息,请参阅 连接到您的实例的常规先决条件

  • 安装 SCP 客户端

    默认情况下,大多数 Linux、Unix 和 Apple 计算机都包含 SCP 客户端。如果您的计算机不含 SSH 客户端,OpenSSH 项目提供了整套 SSH 工具免费使用的功能,包括 SCP 客户端。有关更多信息,请参阅 http://www.openssh.org

以下步骤将引导您使用 SCP 来传输文件。如果您已经使用 SSH 连接到实例,且已确认实例指纹,您可以从包含 SCP 命令的步骤 (步骤 4) 开始。

使用 SCP 来传输文件

  1. 使用实例的公有 DNS 名称将文件传输到您的实例。例如,如果私有密钥文件的名称是 my-key-pair、要传输的文件是 SampleFile.txt、用户名是 ec2-user、实例的公有 DNS 名称是 ec2-198-51-100-1.compute-1.amazonaws.com,则可以使用以下命令将文件复制到 ec2-user 主目录。

    scp -i /path/my-key-pair.pem /path/SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~

    您会看到如下响应:

    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)?
  2. (仅限 IPv6) 或者,您可以使用实例的 IPv6 地址传输文件。IPv6 地址必须用方括号 ([]) 括起,方括号必须转义 (\)。

    scp -i /path/my-key-pair.pem /path/SampleFile.txt ec2-user@\[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~
  3. (可选) 验证安全警报中的指纹是否与您之前在 (可选)获取实例指纹 中获得的指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。

  4. 输入 yes

    您会看到如下响应:

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
    to the list of known hosts.
    Sending file modes: C0644 20 SampleFile.txt
    Sink: C0644 20 SampleFile.txt
    SampleFile.txt                                100%   20     0.0KB/s   00:00

    如果您收到“bash: scp: command not found (bash: scp: 命令未找到)”错误,您必须先在 Linux 实例上安装 scp。对于某些操作系统,该命令会位于 openssh-clients 程序包中。对于 Amazon Linux 变体(如经 Amazon ECS 优化的 AMI),使用以下命令安装 scp

    [ec2-user ~]$ sudo yum install -y openssh-clients
  5. 要反方向传输文件(从 Amazon EC2 实例中传输到本地计算机),请颠倒主机参数的顺序。例如,要将 SampleFile.txt 文件从您的 EC2 实例传回到您的本地计算机上的主目录,并且另存为 SampleFile2.txt,则可在您的本地计算机上使用以下命令:

    scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt
  6. (仅限 IPv6) 或者,您可以使用实例的 IPv6 地址反方向传输文件。

    scp -i /path/my-key-pair.pem ec2-user@\[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~/SampleFile.txt ~/SampleFile2.txt