使用 SSH 连接到 Linux 实例
启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它。
以下说明介绍如何使用 SSH 客户端连接到您的实例。如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题。有关更多连接选项,请参阅连接到您的 Linux 实例。
先决条件
在连接到 Linux 实例之前,请先完成以下先决条件:
验证该实例是否就绪
启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查您的实例是否通过了状态检查。您可以在实例页面的状态检查列中查看此信息。
验证有关连接到您的实例的常规先决条件
有关更多信息,请参阅 连接到您的实例的常规先决条件。
根据需要在您的本地计算机上安装 SSH 客户端
您的本地计算机可能已默认安装了 SSH 客户端。您可以通过在命令行中键入 ssh 来验证这一点。如果您的计算机无法识别该命令,可安装 SSH 客户端。
-
最新版本的 Windows Server 2019 和 Windows 10 – OpenSSH 作为可安装组件包括在内。有关信息,请参阅 Windows 中的 OpenSSH。
-
较早版本的 Windows – 下载并安装 OpenSSH。有关更多信息,请参阅 Win32-OpenSSH。
-
Linux 和 macOS X – 下载并安装 OpenSSH。有关更多信息,请参阅 http://www.openssh.com。
使用 SSH 客户端连接到 Linux 实例
通过以下过程使用 SSH 客户端连接到您的 Linux 实例。如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题。
使用 SSH 连接到您的实例
-
在终端窗口中,使用 ssh 命令连接到该实例。您指定私有密钥的路径和文件名 (
.pem
)、实例的用户名以及实例的公有 DNS 名称或 IPv6 地址。有关如何查找私有密钥、实例的用户名以及实例的 DNS 名称或 IPv6 地址的更多信息,请参阅查找私有密钥和获取有关您的实例的信息。要连接到实例,请使用以下命令之一。-
(公有 DNS)要使用实例的公有 DNS 名称进行连接,请输入以下命令。
ssh -i
/path/my-key-pair
.pemmy-instance-user-name
@my-instance-public-dns-name
-
(IPv6) 或者,如果您的实例具有 IPv6 地址,要使用实例的 IPv6 地址进行连接,请输入以下命令。
ssh -i
/path/my-key-pair
.pemmy-instance-user-name
@my-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.
使用 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 来传输文件
-
使用实例的公有 DNS 名称或 IPv6 地址(如果实例具有该地址)将一个文件传输到实例。例如,如果私有密钥文件的名称为
my-key-pair
,要传输的文件为SampleFile.txt
,实例的用户名为my-instance-user-name
,实例的公有 DNS 名称为my-instance-public-dns-name
或 IPv6 地址为my-instance-IPv6-address
(如果实例具有该地址),请使用以下命令之一将该文件复制到my-instance-user-name
主目录中。-
(公有 DNS)要使用实例的公有 DNS 名称将文件传输到实例,请输入以下命令。
scp -i
/path/my-key-pair
.pem/path/SampleFile.txt
my-instance-user-name
@my-instance-public-dns-name
:~
-
(IPv6) 或者,如果实例具有 IPv6 地址,要使用实例的 IPv6 地址传输文件,请输入以下命令。IPv6 地址必须用方括号 (
[ ]
) 括起来,并且必须对方括号进行转义 (\
)。scp -i
/path/my-key-pair
.pem/path/SampleFile.txt
my-instance-user-name
@\[my-instance-IPv6-address
\]:~
您会看到如下响应:
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
。您会看到如下响应:
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
-
要在另一个方向上传输文件(从 Amazon EC2 实例中传输到本地计算机),请颠倒主机参数的顺序。例如,要将
SampleFile.txt
文件从 EC2 实例传回到本地计算机上的主目录并保存为SampleFile2.txt
,请在本地计算机上使用以下命令。-
(公有 DNS)要使用实例的公有 DNS 名称将文件传输到实例,请输入以下命令。
scp -i
/path/my-key-pair
.pemmy-instance-user-name
@my-instance-public-dns-name
:~/SampleFile.txt ~/SampleFile2.txt
-
(IPv6) 或者,如果实例具有 IPv6 地址,要使用实例的 IPv6 地址传输文件,请输入以下命令。IPv6 地址必须用方括号 (
[ ]
) 括起来,并且必须对方括号进行转义 (\
)。scp -i
/path/my-key-pair
.pemmy-instance-user-name
@\[my-instance-IPv6-address
\]:~/SampleFile.txt ~/SampleFile2.txt
-
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
赞赏码
非学,无以致疑;非问,无以广识