使用 Windows Subsystem for Linux 从 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 实例中所述),并且体验与使用本机 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 发行版?