远程访问AWS EC2 Linux虚拟机是AWS云计算服务中的一个基本且重要的技能。本指南旨在为初学者提供一系列步骤,以便成功地设置并远程访问他们的EC2 Linux实例。包括如何上传下载文件、如何ssh远程登录EC2虚拟机。
一、创建一个AWS EC2 Linux 虚拟机
创建一个Amazon EC2 Linux虚拟机(实例)的步骤如下:
-
登录到AWS管理控制台:
- 打开浏览器,访问 AWS管理控制台。
- 输入你的AWS账户的电子邮件地址和密码,然后点击“登录”。
-
访问EC2 Dashboard:
- 在控制台的“Find Services”搜索框中,输入EC2并选择它。这将带你进入EC2 Dashboard
-
启动实例:
- 在EC2 Dashboard中,点击“Launch Instance”来开始创建一个新的虚拟机。
-
选择AMI(Amazon Machine Image):
- 你将看到一个列表,展示了可用的AMI。选择一个Linux AMI。例如,你可以选择“Amazon Linux 2 AMI”或“Ubuntu Server”。点击“Select”继续。
-
选择实例类型:
- 选择你想要的虚拟机的大小(CPU、内存、存储等)。对于简单的测试,你可以选择“t2.micro”(在免费使用层中可用)。点击“Next: Configure Instance Details”。
-
配置实例:
- 在“Configure Instance Details”页面,你可以保留大多数选项为默认值。对于特定的用途,你可能需要调整网络或子网设置,或者添加IAM角色。如果你刚开始使用,可以跳过这些高级配置,点击“Next: Add Storage”。
-
添加存储:
- 根据需要调整存储大小。对于基本的Linux实例,默认值通常就足够了。点击“Next: Add Tags”。
-
添加标签:
- (可选)为实例添加键值对的标签,这有助于管理和识别你的资源。例如,Key: Name, Value: MyFirstEC2。点击“Next: Configure Security Group”。
-
配置安全组:
- 安全组相当于虚拟防火墙,用于控制访问实例的流量。你可以创建一个新的安全组或选择一个现有的。确保至少允许SSH(端口22)从你的IP地址访问,这样你才能远程连接到实例。点击“Review and Launch”。
-
查看和启动:
- 查看你的实例配置。如果一切正确,点击“Launch”。
- 弹出一个对话框,提示你选择一个密钥对。如果你没有密钥对,选择“Create a new key pair”,命名密钥,例如MyFirstEC2.pem,然后下载它。确保不要丢失这个密钥文件,因为它是连接到你的实例的唯一方法。选择你的密钥对,勾选确认你拥有所选密钥对私钥,然后点击“Launch Instances”。
-
查看实例:
- 点击“View Instances”来回到EC2 Dashboard。你将看到你的实例正在启动。启动可能需要几分钟。
一旦实例的状态变为“running”,且检查状态为“2/2 checks passed”,你就可以通过SSH使用你的私钥文件连接到你的Linux实例了。
二、通过WinSCP上传和下载文件
WinSCP (Windows Secure Copy) 是一个免费、开源的Windows应用程序,主要用于通过SFTP (SSH File Transfer Protocol)、SCP (Secure Copy Protocol)、FTP (File Transfer Protocol) 和WebDAV协议在本地计算机和远程计算机之间安全地传输文件。它广泛用于与Unix和Linux服务器系统的文件交互。下载地址:
Downloading WinSCP-6.3.1-Setup.exe :: WinSCP
以下是WinSCP的一些主要特点:
-
图形用户界面:WinSCP提供了一个直观的图形用户界面,使文件传输操作更加直观和用户友好。用户可以通过简单的拖放操作在本地和远程文件系统之间复制文件。
-
多种传输协议支持:除了SFTP和SCP,WinSCP还支持使用FTP和WebDAV协议进行文件传输,这为用户提供了灵活性,可以选择适合他们需求的协议。
-
安全性:WinSCP使用SSH (Secure Shell) 提供安全的文件传输。它确保数据在传输过程中通过加密来保护,防止未经授权的访问和数据泄露。
-
脚本和自动化:WinSCP支持脚本和自动化功能,允许用户自动执行文件传输和同步任务。这对于需要定期执行文件备份或更新的任务非常有用。
-
集成编辑器:WinSCP内置文本编辑器允许用户直接编辑远程服务器上的文件,无需在本地修改后再上传。
-
Windows集成:WinSCP可以集成到Windows Shell中,提供了上下文菜单和拖放操作,以及URL链接的支持。
针对AWS EC2 实例 MyFirstEC2 ,我们想要通过WinSCP上传一个叫做example.txt
的文件,并从EC2实例下载一个叫做report.pdf
的文件。我们的EC2实例使用的是Amazon Linux AMI,因此默认的用户名是ec2-user
。
-
准备工作:
- 确保你的EC2实例正在运行,并且你已经有了该实例的私有密钥文件(例如,
MyFirstEC2.pem
)。 - 确保已经安装了WinSCP。
- 确保你的EC2实例正在运行,并且你已经有了该实例的私有密钥文件(例如,
-
启动WinSCP:
- 打开WinSCP,登录窗口会自动显示。
-
会话设置:
- 在“文件协议”选择
SFTP
。 - 在“主机名”中输入你的EC2实例的公有DNS或IP地址,例如
ec2-198-51-100-1.compute-1.amazonaws.com
。如何找到这个地址,在EC2的实例详细信息中,如下图: - 确保“端口号”是
22
。 - 在“用户名称”中输入
ec2-user
。
- 在“文件协议”选择
-
配置密钥:
- 点击“高级”按钮,然后在“SSH”下选择“身份验证”。
- 在“私钥文件”下,点击“...”按钮,找到并选择你的
.pem
私钥文件(例如,my-ec2-keypair.pem
)。WinSCP会提示你将这个文件转换为.ppk格式。接受提示并保存新的密钥文件。
-
登录:
- 点击“登录”按钮。如果是首次连接到这个EC2实例,WinSCP会显示一个警告,询问你是否信任这个主机。点击“是”继续。
-
上传
example.txt
:- 一旦连接成功,你会看到WinSCP窗口的左侧是你的本地文件系统,右侧是EC2实例的文件系统。
- 在左侧找到
example.txt
文件,然后将其拖拽到右侧的窗口中,选择你希望上传到的目录。
-
下载
report.pdf
:- 在右侧窗口中找到
report.pdf
文件,然后将其拖拽到左侧的窗口中,选择你希望保存到的本地目录。
- 在右侧窗口中找到
-
完成传输后断开连接:
- 文件传输完成后,可以在WinSCP窗口中选择“会话”>“断开连接”,然后关闭WinSCP。
通过这个过程,你就可以利用WinSCP方便地在本地计算机和AWS EC2 Linux实例之间传输文件。
三、通过Putty 远程访问虚拟机
Putty下载地址链接如下:
Download PuTTY: latest release (0.80) (greenend.org.uk)
-
获取 AWS 实例的公网 IP 地址或 DNS 名称: 登录到 AWS 管理控制台,导航到 EC2 服务,然后找到你的运行中的实例。在实例列表中,你将能够看到你的实例的公网 IP 地址或 DNS 名称。
-
转换 SSH 密钥: 如果你还没有将
.pem
密钥转换为 PuTTY 支持的.ppk
格式,可以按照以下步骤使用 PuTTYgen 工具进行转换:- 打开 PuTTYgen。
- 点击 "Conversions" -> "Import key",然后选择你的 MyFirstEC2
.pem
密钥文件。 - 选择 "Save private key" 按钮,以便将密钥保存为
.ppk
格式。
-
配置 PuTTY 连接:
- 打开 PuTTY,进入 "Session" 部分。
- 在 "Host Name (or IP address)" 栏中输入你的 AWS 实例的公网 IP 地址或 DNS 名称。
- 确保 "Port" 栏中的端口号设置为 22(SSH 默认端口)。
- 在 "Connection type" 下选择 "SSH"。
-
配置 SSH 密钥:
- 在左侧导航栏中选择 "Connection" -> "SSH" -> "Auth"。
- 点击 "Browse" 按钮,选择之前转换好的
.ppk
密钥文件。
-
保存会话配置:
- 在 "Session" 部分,输入一个会话名称,比如 "AWS SSH"。
- 点击 "Save" 按钮保存配置。
-
连接到 AWS 实例:
- 回到 "Session" 部分,点击 "Open" 按钮连接到 AWS 实例。
- 如果一切设置正确,你将看到一个命令行提示符,表示你已经成功连接到了 AWS 实例的 Linux 虚拟机。
-
接到你的EC2实例:
- 点击“Open”按钮以启动与EC2实例的连接。
- 如果是第一次连接到这个服务器,PuTTY会显示一个安全警告,询问你是否信任这个服务器的主机密钥。点击“Yes”或“Accept”以继续。
- 当被要求输入用户名时,输入适用于你的AMI的用户名。例如,对于Amazon Linux AMI,默认用户名是“ec2-user”,对于Ubuntu AMI,则是“ubuntu”。