使用适用于 Linux 的 Windows 子系统(WSL)从 Windows 连接到 Linux 实例
启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它。
以下说明介绍如何使用 Windows Subsystem for Linux(WSL)上的 Linux 发行版来连接到您的实例。可以免费下载 WSL,可用于在 Windows 上直接将本机 Linux 命令行工具与传统 Windows 桌面一起运行,而不会产生虚拟机开销。
通过安装 WSL,您可以使用本机 Linux 环境连接到 Linux EC2 实例,而不是使用 PuTTY 或 PuTTYgen。Linux 环境让连接到 Linux 实例变得更轻松,因为它附带一个本机 SSH 客户端,可用于连接到 Linux 实例并更改 .pem 密钥文件的权限。Amazon EC2 控制台提供用于连接到 Linux 实例的 SSH 命令,并且您可以获得 SSH 命令中的详细输出以进行故障排除。有关更多信息,请参阅 Windows Subsystem for Linux 文档
注意
在安装 WSL 后,所有先决条件和步骤都相同(如使用 SSH 从 Linux 或 macOS 连接到 Linux 实例中所述),并且体验与使用本机 Linux 的体验类似。
如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题。。
先决条件
在连接到 Linux 实例之前,请先完成以下先决条件:
- 验证该实例是否就绪
-
启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查您的实例是否通过了状态检查。您可以在实例页面的状态检查列中查看此信息。
- 验证有关连接到您的实例的常规先决条件
-
要查找实例的公有 DNS 名称或 IP 地址以及您在连接到实例时应使用的用户名,请参阅获取有关您的实例的信息。
- 在本地计算机上安装 Windows Subsystem for Linux (WSL) 和 Linux 发行版
-
按照 Windows 10 安装指南
中的说明执行操作来安装 WSL 和 Linux 发行版。说明中的示例安装的是 Linux 的 Ubuntu 发行版,但您可以安装任意发行版。系统会提示您重新启动计算机以使更改生效。 - 将私有密钥从 Windows 复制到 WSL
-
在 WSL 终端窗口中,将
.pem
文件(适用于您在启动实例时指定的密钥对)从 Windows 复制到 WSL。记下在连接到实例时要使用的 WSL 上的.pem
文件的完全限定路径。有关如何指定 Windows 硬盘的路径的信息,请参阅如何访问我的 C 驱动器?。有关密钥对和 Windows 实例的更多信息,请参阅 Amazon EC2 密钥对和 Windows 实例。 cp /mnt/
<Windows drive letter>/path/my-key-pair
.pem ~/WSL-path/my-key-pair
.pem
使用 WSL 连接到 Linux 实例
通过以下过程使用 Windows Subsystem for Linux (WSL) 连接到 Linux 实例。如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题。。
使用 SSH 连接到您的实例
-
在终端窗口中,使用 ssh 命令连接到该实例。您指定私有密钥的路径和文件名 (
.pem
)、实例的用户名以及实例的公有 DNS 名称或 IPv6 地址。有关如何查找私有密钥、实例的用户名以及实例的 DNS 名称或 IPv6 地址的更多信息,请参阅查找私有密钥并设置权限和获取有关您的实例的信息。要连接到实例,请使用以下命令之一。-
(公有 DNS)要使用实例的公有 DNS 名称进行连接,请输入以下命令。
ssh -i
/path/key-pair-name
.peminstance-user-name
@my-instance-public-dns-name
-
(IPv6) 或者,如果实例具有 IPv6 地址,您可以使用其 IPv6 地址连接到该实例。请在 ssh 命令中指定私有密钥 (.pem) 文件路径、适当的用户名和 IPv6 地址。
ssh -i
/path/key-pair-name
.peminstance-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.
使用 SCP 将文件从 Linux 传输到 Linux 实例
在您的本地计算机与 Linux 实例之间传输文件的一种方法是使用安全复制协议 (SCP)。本节介绍了如何使用 SCP 传输文件。该步骤与使用 SSH 连接到实例的步骤类似。
先决条件
-
验证有关将文件传输到您的实例的常规先决条件。
在本地计算机和实例之间传输文件之前,请执行以下操作,以确保您拥有所有必要信息。
-
安装 SCP 客户端
默认情况下,大多数 Linux、Unix 和 Apple 计算机都包含 SCP 客户端。如果您的计算机不含 SSH 客户端,OpenSSH 项目提供了整套 SSH 工具免费使用的功能,包括 SCP 客户端。有关更多信息,请参阅 https://www.openssh.com
。
以下步骤将引导您使用 SCP 来传输文件。如果您已经使用 SSH 连接到实例,且已确认实例指纹,您可以从包含 SCP 命令的步骤 (步骤 4) 开始。
使用 SCP 来传输文件
-
使用实例的公有 DNS 名称将文件传输到您的实例。例如,如果私有密钥文件的名称为
key-pair-name
,要传输的文件为SampleFile.txt
,用户名为instance-user-name
,实例的公有 DNS 名称为my-instance-public-dns-name
或 IPv6 地址为my-instance-IPv6-address
,请使用以下命令之一将该文件复制到instance-user-name
主目录中。-
(公有 DNS)要使用实例的公有 DNS 名称传输文件,请输入以下命令。
scp -i
/path/key-pair-name
.pem/path/SampleFile.txt
instance-user-name
@my-instance-public-dns-name
:~
-
(IPv6) 或者,如果实例具有 IPv6 地址,您可以使用实例的 IPv6 地址传输文件。IPv6 地址必须用方括号 (
[ ]
) 括起来,并且必须对方括号进行转义 (\
)。scp -i
/path/key-pair-name
.pem/path/SampleFile.txt
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/key-pair-name
.peminstance-user-name
@ec2-198-51-100-1.compute-1.amazonaws.com
:~/SampleFile.txt ~/SampleFile2.txt
-
(IPv6) 或者,如果实例具有 IPv6 地址,要使用实例的 IPv6 地址在另一个方向上传输文件,请输入以下命令。
scp -i
/path/key-pair-name
.peminstance-user-name
@\[2001:db8:1234:1a00:9691:9503:25ad:1761
\]:~/SampleFile.txt ~/SampleFile2.txt
-
卸载 WSL
有关卸载 Windows Subsystem for Linux 的信息,请参阅如何卸载 WSL 发行版?