AWS EC2 学习之: 使用 PuTTY 从 Windows 连接到 Linux 实例

2024-03-25 16:52

本文主要是介绍AWS EC2 学习之: 使用 PuTTY 从 Windows 连接到 Linux 实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

注意

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

以下说明介绍如何使用 PuTTY (适用于 Windows 的免费 SSH 客户端) 连接到您的实例。如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。

先决条件

使用 PuTTY 连接到您的 Linux 实例之前,请先完成以下先决条件:

  • 安装 PuTTY

    从 PuTTY 下载页面下载并安装 PuTTY。如果您安装的是旧版本的 PuTTY,建议您下载最新版本。确保安装整个套件。

  • 获得实例的 ID

    您可以通过使用 Amazon EC2 控制台(位于 Instance ID (实例 ID) 列中)获得您的实例的 ID。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。

  • 获得实例的公有 DNS 名称

    您可以使用 Amazon EC2 控制台获取实例的公有 DNS (选中 Public DNS (IPv4) 列;如果此列处于隐藏状态,请选择 Show/Hide 图标并选择 Public DNS (IPv4))。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。

  • (仅限 IPv6) 获取实例的 IPv6 地址

    如果您已将 IPv6 地址分配给您的实例,则可选择使用实例的 IPv6 地址而非公共 IPv4 地址或公共 IPv4 DNS 主机名来连接实例。您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。可使用 Amazon EC2 控制台 (选中 IPv6 IPs 字段) 获取实例的 IPv6 地址。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。有关 IPv6 的更多信息,请参阅IPv6 地址。

  • 查找私有**

    获取您在启动实例时指定的**对的 .pem 文件在您电脑上位置的完全限定路径。

  • 获取用于启动实例的 AMI 的默认用户名称

    • 对于 Amazon Linux AMI,用户名为 ec2-user

    • 对于 Centos AMI,用户名称是 centos

    • 对于 Debian AMI,用户名称是 adminroot

    • 对于 Fedora AMI,用户名为 ec2-userfedora

    • 对于 RHEL AMI,用户名称是 ec2-userroot

    • 对于 SUSE AMI,用户名称是 ec2-userroot

    • 对于 Ubuntu AMI,用户名称是 ubunturoot

    • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

  • 允许从您的 IP 地址到您的实例的入站 SSH 流量

    确保与您的实例关联的安全组允许来自您的 IP 地址的传入 SSH 流量。默认情况下,默认安全组不允许传入 SSH 流量。有关更多信息,请参阅 为您的 Linux 实例授权入站流量。

使用 PuTTYgen 转换您的私有**

PuTTY 本身不支持 Amazon EC2 生成的私有**格式 (.pem)。PuTTY 有一个名为 PuTTYgen 的工具,可将**转换成所需的 PuTTY 格式 (.ppk)。您必须将私有**转换为此格式 (.ppk),然后才能尝试使用 PuTTY 连接到您的实例。

转换您的私有**

  1. 启动 PuTTYgen (例如,在开始菜单中,选择 All Programs > PuTTY > PuTTYgen)。

  2. Type of key to generate 下,选择 RSA

    PuTTYgen 中的 RSA **

    如果您使用的是旧版本的 PuTTYgen,请选择 SSH-2 RSA

  3. 选择 Load。默认情况下,PuTTYgen 仅显示扩展名为 .ppk 的文件。要找到您的 .pem 文件,请选择显示所有类型的文件的选项。

    选择所有文件类型

  4. 选择您在启动实例时指定的**对的 .pem 文件,然后选择 Open。选择 OK 关闭确认对话框。

  5. 选择 Save private key,以 PuTTY 可以使用的格式保存**。PuTTYgen 显示一条关于在没有口令的情况下保存**的警告。选择

    注意

    私有**的口令是一层额外保护,因此,即使您的私有**被泄露,在没有口令的情况下,该**仍不可用。使用口令的缺点是让自动化变得更难,因为登录到实例或复制文件到实例需要进行人为干预。

  6. 为该**指定与**对相同的名称 (如,my-key-pair)。PuTTY 自动添加 .ppk 文件扩展名。

您的私有**格式现在是正确的 PuTTY 使用格式了。您现在可以使用 PuTTY 的 SSH 客户端连接到实例。

启动 PuTTY 会话

通过以下过程使用 PuTTY 连接到您的 Linux 实例。您需要使用为私有**创建的 .ppk 文件。如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。

启动 PuTTY 会话

  1. (可选) 您可以在本地系统 (而不是实例) 上使用 get-console-output (AWS CLI) 命令验证实例上的 RSA **指纹。如果您从第三方的公用 AMI 启动了实例,则可能需要这样做。找到 SSH HOST KEY FINGERPRINTS 部分,记下 RSA 指纹 (例如 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) 并将它与实例的指纹进行比较。

     aws ec2 get-console-output --instance-id instance_id 

    以下是您应查找的内容的示例:

    -----BEGIN SSH HOST KEY FINGERPRINTS----- ... 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f ... -----END SSH HOST KEY FINGERPRINTS-----

    SSH HOST KEY FINGERPRINTS 部分仅在实例首次启动之后可用。

  2. 启动 PuTTY (在开始菜单中,选择 All Programs > PuTTY > PuTTY)。

  3. Category 窗格中,选择 Session 并填写以下字段:

    1. Host Name 框中,输入 user_name@public_dns_name。确保为您的 AMI 指定相应的用户名。例如:

      • 对于 Amazon Linux AMI,用户名为 ec2-user

      • 对于 Centos AMI,用户名称是 centos

      • 对于 Debian AMI,用户名称是 adminroot

      • 对于 Fedora AMI,用户名为 ec2-userfedora

      • 对于 RHEL AMI,用户名称是 ec2-userroot

      • 对于 SUSE AMI,用户名称是 ec2-userroot

      • 对于 Ubuntu AMI,用户名称是 ubunturoot

      • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

    2. (仅限 IPv6) 要使用实例的 IPv6 地址连接,请输入 user_name@ipv6_address。确保为您的 AMI 指定相应的用户名。例如:

      • 对于 Amazon Linux AMI,用户名为 ec2-user

      • 对于 Centos AMI,用户名称是 centos

      • 对于 Debian AMI,用户名称是 adminroot

      • 对于 Fedora AMI,用户名为 ec2-userfedora

      • 对于 RHEL AMI,用户名称是 ec2-userroot

      • 对于 SUSE AMI,用户名称是 ec2-userroot

      • 对于 Ubuntu AMI,用户名称是 ubunturoot

      • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

    3. Connection type 下,选择 SSH

    4. 确保 Port 为 22。

    PuTTY 配置 - 会话

  4. (可选) 您可以配置 PuTTY 以定期自动发送“保持连接”数据以将会话保持活动状态。要避免由于会话处于不活动状态而与实例断开连接,这是非常有用的。在 Category 窗格中,选择 Connection,然后在 Seconds between keepalives 字段中输入所需的间隔。例如,如果您的会话在处于不活动状态 10 分钟后断开连接,请输入 180 以将 PuTTY 配置为每隔 3 分钟发送一次保持活动数据。

  5. Category 窗格中,展开 Connection,再展开 SSH,然后选择 Auth。完成以下操作:

    1. 选择 Browse

    2. 选择您为**对生成的 .ppk 文件,然后选择 Open

    3. (可选) 如果打算稍后重新启动此会话,则可以保存此会话信息以便日后使用。在 Category 树中选择 Session,在 Saved Sessions 中输入会话名称,然后选择 Save

    4. 选择打开以便开始 PuTTY 会话。

    PuTTY 配置 - 身份验证

  6. 如果这是您第一次连接到此实例,PuTTY 会显示安全警告对话框,询问您是否信任您要连接到的主机。

  7. (可选) 验证安全警报对话框中的指纹是否与之前在步骤 1 中获取的指纹匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。

  8. 选择。此时会打开一个窗口并且您连接到了您的实例。

    注意

    如果您在将私有**转换成 PuTTY 格式时指定了口令,当您登录到实例时,您必须提供该口令。

如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。

使用 PuTTY 安全复制客户端将文件传输到您的 Linux 实例

PuTTY 安全复制客户端 (PSCP) 是一个命令行工具,您可以用它在 Windows 计算机与 Linux 实例之间传输文件。如果您更喜欢图形用户界面 (GUI),您可以使用一种叫作“WinSCP”的开源 GUI 工具。有关更多信息,请参阅 使用 WinSCP 将文件传输到您的 Linux 实例。

要使用 PSCP,您需要使用在使用 PuTTYgen 转换您的私有**中生成的私有**。您还需要使用 Linux 实例的公有 DNS 地址。

以下示例将 Sample_file.txt 文件从 Windows 计算机上的 C:\ 驱动器传输到 Amazon Linux 实例上的 ec2-user 主目录:

 

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

(仅限 IPv6) 以下示例使用实例的 IPv6 地址传输文件 Sample_file.txt。IPv6 地址必须以方括号 ([]) 括起。

 

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@[ipv6-address]:/home/ec2-user/Sample_file.txt

使用 WinSCP 将文件传输到您的 Linux 实例

WinSCP 是适用于 Windows 的基于 GUI 的文件管理器,您可以通过它来使用 SFTP、SCP、FTP 和 FTPS 协议将文件上传并传输到远程计算机。通过 WinSCP,您可以将 Windows 计算机中的文件拖放到 Linux 实例或同步这两个系统之间的所有目录结构。

要使用 WinSCP,您需要使用在使用 PuTTYgen 转换您的私有**中生成的私有**。您还需要使用 Linux 实例的公有 DNS 地址。

  1. 从 WinSCP :: Official Site :: Download 上下载并安装 WinSCP。对于大多数用户而言,采用默认安装选项就可以了。

  2. 启动 WinSCP。

  3. WinSCP 登录屏幕中,对于 Host name,请输入实例的公有 DNS 主机名称或公有 IPv4 地址。

    (仅限 IPv6) 要使用实例的 IPv6 地址登录,请输入实例的 IPv6 地址。

  4. 对于 User name (用户名),请输入默认的 AMI 用户名。

    • 对于 Amazon Linux AMI,用户名为 ec2-user

    • 对于 Centos AMI,用户名称是 centos

    • 对于 Debian AMI,用户名称是 adminroot

    • 对于 Fedora AMI,用户名为 ec2-userfedora

    • 对于 RHEL AMI,用户名称是 ec2-userroot

    • 对于 SUSE AMI,用户名称是 ec2-userroot

    • 对于 Ubuntu AMI,用户名称是 ubunturoot

    • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

  5. 为您的实例指定私有**。对于 Private key,请输入私有**的路径,或选择“...”按钮以浏览文件。对于较新版本的 WinSCP,请选择 Advanced 以打开高级站点设置,然后在 SSH 下面选择 Authentication 以查找 Private key file 设置。

    以下是 WinSCP 版本 5.9.4 中的屏幕截图:

    WinSCP Advanced 屏幕

    WinSCP 需要 PuTTY 私有**文件 (.ppk)。您可以使用 PuTTYgen 将 .pem 安全**文件转换成 .ppk 格式。有关更多信息,请参阅 使用 PuTTYgen 转换您的私有**。

  6. (可选) 在左侧面板中,选择 Directories,然后对于 Remote directory,请输入要将文件添加到其中的目录路径。对于较新版本的 WinSCP,请选择 Advanced 以打开高级站点设置,然后在 Environment 下面选择 Directories 以查找 Remote directory 设置。

  7. 选择 Login 进行连接,然后选择 Yes,将主机指纹添加到主机缓存。

    WinSCP 屏幕

  8. 建立连接后,在连接窗口中,您的 Linux 实例显示在右侧,本地计算机显示在左侧。您可以直接将文件从本地计算机拖放到远程文件系统。有关 WinSCP 的更多信息,请参阅 Table of Contents :: WinSCP 中的项目文档。

    如果您收到一个“Cannot execute SCP to start transfer”(无法执行 SCP 以开始传输) 错误,必须先在 Linux 实例上安装 scp。对于某些操作系统,该命令会位于 openssh-clients 程序包中。对于 Amazon Linux 变体 (如经 Amazon ECS 优化的 AMI),使用以下命令安装 scp.

这篇关于AWS EC2 学习之: 使用 PuTTY 从 Windows 连接到 Linux 实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845634

相关文章

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp