Amazon的EC2中,默认是不允许使用用户名和密码直接连接Instance的,而是通过AWS (Amazon Web Service)提供的证书。在第一次使用EC2的时候,AWS会要求你创建一个证书并下载,证书是一个.pem文件。在Linux上可以直接使用SSH来连接,比如:

ssh -i 证书.pem ec2-user@Instance的IP地址

在Windows中,可以使用Putty工具来进行SSH连接,只不过Putty不能直接使用的.pem格式的证书,需要转换成.ppk才可以。这时就需要使用PuttyGen工具了(在同一个页面就有下载):

1. 打开PuttyGen工具

2. 点击Load加载.pem证书

3. 点击Save private key来保存.ppk证书

新生成的证书就可以在Putty里使用了。

大致的使用方法是在Putty的设置Connection->SSH->Auth里添加.ppk证书,如下图:

然后就可以使用Putty来连接EC2的Instance了,默认用户名是ec2-user。

一下是官方教程:

使用 PuTTY 从 Windows 连接到 Linux 实例

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

Note

启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查您的实例是否通过了状态检查 - 您可以在 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 (公有 DNS) 列;如果此列处于隐藏状态,请单击 Show/Hide (显示/隐藏) 图标并选择 Public DNS (公有 DNS))。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。

  • 查找私有密钥

    您需要使用您在启动实例时指定的密钥对的 .pem 文件的完全限定路径。

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

    确保与您的实例关联的安全组允许来自您的 IP 地址的传入 SSH 流量。有关更多信息,请参阅授权网络访问您的实例

    Important

    默认情况下,您的默认安全组不允许传入 SSH 流量。

使用 PuTTYgen 转换您的私有密钥

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

转换您的私有密钥

  1. 启动 PuTTYgen(例如,在“Start”菜单中,依次单击“All Programs > PuTTY > PuTTYgen”)。

  2. 在 Type of key to generate (要生成的密钥类型) 下,选择 SSH-2 RSA。

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

  4. 为启动实例时指定的密钥对选择 .pem 文件,然后单击 Open。单击 OK (确定) 关闭确认对话框。

  5. 单击 Save private key (保存私有密钥),以 PuTTY 可用的格式保存密钥。PuTTYgen 显示一条关于在没有口令的情况下保存密钥的警告。单击 Yes (是)。

    Note

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

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

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

启动 PuTTY 会话

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

启动 PuTTY 会话

  1. (可选)您可以在本地系统(而不是实例)上使用以下命令之一验证实例上的 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)并将它与实例的指纹进行比较。

    Note

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

  2. 启动 PuTTY(在“Start”菜单中,单击“All Programs > PuTTY > PuTTY”)。

  3. 在“Category (类别)”窗格中,选择 Session (会话) 并填写以下字段:

    1. 在 Host Name (主机名) 框中,输入 user_name@public_dns_name。确保为您的 AMI 指定相应的用户名。例如:在实例上点击右键,然后选择连接,就可以看到下边的图

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

      • 对于 RHEL5 AMI,用户名称为 root 或 ec2-user

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

      • 对于 Fedora AMI,用户名称为 fedora 或 ec2-user

      • 对于 SUSE Linux,用户名称是 root 或 ec2-user

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

    2. 在 Connection type (连接类型) 下,选择 SSH。

    3. 确保 Port (端口) 为 22。

  4. 在 Category (类别) 窗格中,展开 Connection (连接),再展开 SSH,然后选择 Auth (身份验证)。完成以下操作:

    1. 单击 Browse (浏览)。

    2. 选择您为密钥对生成的 .ppk 文件,然后单击 Open (打开)。

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

    4. 单击 Open (打开) 开始 PuTTY 会话。

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

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

  7. 单击 Yes (是)。此时会打开一个窗口并且您连接到了您的实例。

    Note

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

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

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

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

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

以下示例将文件 Sample_file.txt 从 Windows 计算机上的 C:\ 驱动器传输到 Linux 实例上的/usr/local 目录:

C:\> pscp -i C:\Keys\my-key-pair.ppk C:\Sample_file.txt user_name@public_dns:/usr/local/Sample_file.txt

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

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

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

  1. 从 http://winscp.net/eng/download.php 上下载并安装 WinSCP。对于大多数用户而言,采用默认安装选项就可以了。

  2. 启动 WinSCP。

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

  4. 对于 User name (用户名),请输入默认的 AMI 用户名。对于 Amazon Linux AMI,用户名是ec2-user。对于 Red Hat AMI,用户名是 root,而对于 Ubuntu AMI,用户名则是ubuntu

  5. 为您的实例指定私有密钥。对于 Private key (私有密钥),请输入私有密钥的路径或单击“…”按钮以浏览文件。有关更新的 WinSCP 版本,您需要单击 Advanced (高级) 打开高级网站设置,然后在 SSH 下单击 Authentication (身份验证) 以查找 Private key file (私有密钥文件) 设置。

    Note

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

  6. (可选)在左侧面板中,单击 Remote directory (目录),然后,对于 Directories (远程目录),输入要将文件添加到其中的目录路径。有关更新版本的 WinSCP,您需要单击 Advanced (高级) 打开高级网站设置,然后在 Environment (环境) 下单击 Directories (目录) 查找Remote directory (远程目录) 设置。

  7. 单击 Login (登录) 进行连接,然后单击 Yes (是) 将主机指纹添加到主机缓存。

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

    Note

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

    [ec2-user ~]$ sudo yum install -y openssh-clients

使用Putty连接Amazon EC2 Instance的更多相关文章

  1. SublimeText SFTP连接Amazon EC2

    文章最初发表于szhshp的第三边境研究所 转载请注明 1. SublimeText SFTP连接Amazon EC2 Sublime Text 3 正式版发布了,全平台IDE果断都换了. 今天终于有 ...

  2. 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。

    使用PuTTY连接AWS的时候,一直出现network error connection refused.百度了这个问题,大家都说是SSH要设置成22.但是我已经设置过了,为什么还是遇到这个问题呢? ...

  3. Amazon EC2上搭建VPN服务器

    Amazon EC2 提供了一年免费试用,Micro Instance,配置是 1G 内存,共享 CPU,和每月 15G 的流量.搭一个 VPN 服务器绰绰有余了.操作系统我选的是 Amazon Li ...

  4. Amazon EC2免费VPS防止超额被扣钱三大方法:流量 硬盘读写 运行时长

    Amazon EC2也就是亚马逊云服务免费VPS主机服务,内存是613MB,月流量是30GB,主机空间是30GB,可以免费使用一年,又加上Amazon服务器全球多个节点CDN和本身的名气,早在2010 ...

  5. 通过SecureCRT访问亚马逊Amazon EC2主机

    亚马逊推出了免费的云主机服务器 Amazon EC2,它是通过安全密钥来访问主机的. 问题是下载的密钥在SecureCRT 上无法直接使用,需要转换. 下面的方法可以在自己的linux主机上生成sec ...

  6. 给Amazon ec2 增加卷(Volume)并挂载到系统

    给Amazon ec2 增加卷(Volume)并挂载到系统 前言 导师让师弟把实验的网站挂到亚马逊的EC2云服务器上.师弟对linux不太熟悉.就跑过来问我.于是花了一个小时搞定.问题主要是将EC2的 ...

  7. 亚马逊 AWS ip反向解析:Configurable Reverse DNS for Amazon EC2’s Elastic IP Addresses

    I’d like to call your attention to a new feature that we rolled out earlier this month. You can now ...

  8. (六)Amazon Lightsail 部署LAMP应用程序之升级到Amazon EC2

    升级到Amazon EC2 将Amazon Lightsail实例升级为Amazon EC2 您将进行以下操作: ①创建使用 Amazon RDS的Web前端实例的快照 ②将该快照导出到 Amazon ...

  9. 1、linux网络服务实验 用PuTTY连接Linux

    这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...

随机推荐

  1. 已在Terminal安装了包,PyCharm却提示无法找到

    想使用python的dpkt包解析pcap文件进行分析,已经按照提示在终端输入sudo apt install python-dpkt,并且显示安装成功. 但是回到PyCharm中依然报错,如图所示: ...

  2. 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)

    [BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...

  3. 【BZOJ2333】棘手的操作(左偏树,STL)

    [BZOJ2333]棘手的操作(左偏树,STL) 题面 BZOJ上看把... 题解 正如这题的题号 我只能\(2333\) 神TM棘手的题目... 前面的单点/联通块操作 很显然是一个左偏树+标记 ( ...

  4. $CDQ$分治总结

    A.\(CDQ\) 分治 特别基础的教程略. \(CDQ\)分治的优缺点: ( 1 )优点:代码量少,常数极小,可以降低处理维数. ( 2 )缺点:必须离线处理. \(CDQ\)分治与其他分治最本质的 ...

  5. 【BZOJ3282】Tree (Link-Cut Tree)

    [BZOJ3282]Tree (Link-Cut Tree) 题面 BZOJ权限题呀,良心luogu上有 题解 Link-Cut Tree班子提 最近因为NOIP考炸了 学科也炸了 时间显然没有 以后 ...

  6. CF484E Sign on Fence

    题意 给定一个长度为n的数列,有m次询问,询问形如l r k 要你在区间[l,r]内选一个长度为k的区间,求区间最小数的最大值 Sol 二分答案 怎么判定,每种数字开一棵线段树 某个位置上的数大于等于 ...

  7. [HDU5765]Bonds

    题面 题意 给出一张\(n\)点\(m\)边无向连通图,求每条边出现在多少个割集中. \(n\le20,m\le\frac{n(n-1)}{2}\) sol 所谓割集,就是指把\(n\)个点分成两个集 ...

  8. [BZOJ3110] [Zjoi2013] K大数查询 (树套树)

    Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置 ...

  9. JAVA通过COM接口操作PPT

    一. 背景说明 在Eclipse环境下,开发JAVA代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,即先收工创建好模板,在程序中修改模板数据. ...

  10. AJAX跨域问题解决方法(3)——被调用方解决跨域

    被调用方解决跨域是指在HTTP响应头中增加指定的字段,允许调用方调用 可以在两种地方增加1.apache/nginx(HTTP服务器)2.tomcat(应用服务器) 浏览器如何判断跨域?仔细观察可以发 ...