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

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 流量。有关更多信息,请参阅授权网络访问您的实例

为您的 Linux 实例授权入站流量

您可以采用安全组控制实例的流量,包括可到达您的实例的流量类型。例如,您可以只允许来自您家庭网络的计算机使用 SSH 访问您的实例。如果您的实例为 Web 服务器,那么您可以允许所有 IP 地址通过 HTTP 访问您的实例,以便外部用户能够浏览您的 Web 服务器上的内容。

若要启用对实例的网络访问,您必须允许该实例的入站流量。要为入站流量打开端口,您需要在启动实例时向与实例关联的安全组添加规则。

要连接到您的实例,您必须设置规则以向来自您计算机的公有 IP 地址的 SSH 流量授权。若要允许来自其他 IP 地址范围的 SSH 流量,请为需要授权的每个范围另外添加规则。

如果您需要启用对 Windows 实例的网络访问,请参阅 Amazon EC2 用户指南(适用于 Microsoft Windows 实例) 中的为 Windows 实例授权入站流量

在您开始之前

确定谁需要访问您的实例;例如,您信任的单个主机或特定网络。在这种情况下,我们会使用您本地系统的公有 IP 地址。您可以通过一项服务来获取本地计算机的公有 IP 地址。例如,我们提供以下服务:http://checkip。amazonaws.com。要查找另一项可提供您的 IP 地址的服务,请使用搜索短语“what is my IP address”。如果您正通过 ISP 或从防火墙后面连接,没有静态 IP 地址,您需要找出客户端计算机使用的 IP 地址范围。

Caution

如果使用 0.0.0.0/0,则可以允许所有 IP 地址使用 SSH 访问您的实例。这在测试环境中可以接受一小段时间,但是在生产环境中并不安全。在生产中,您将仅授权特定 IP 地址或地址范围访问您的实例。

有关安全组的更多信息,请参阅 Amazon EC2 个安全组(对于 Linux 实例)

针对发送到 Linux 实例的入站 SSH 流量添加规则

安全组用作相关实例的防火墙,可在实例级别控制入站和出站的数据流。您必须在安全组中添加规则,以便能够使用 SSH 从您的 IP 地址连接到 Linux 实例。

使用控制台在安全组中为入站 SSH 流量添加规则

  1. 在 Amazon EC2 控制台的导航窗格中,选择 Instances。选择实例并查看 Description (描述)选项卡;Security groups (安全组) 列出了与该实例关联的安全组。选择 view rules,以显示对实例生效的规则列表。

  2. 在导航窗格中,选择 Security Groups。选择与您的实例相关联的一个 安全组。

  3. 在详细信息窗格中的 Inbound 选项卡上,选择 Edit。在对话框中,选择 Add Rule,然后从Type 列表中选择 SSH。

  4. 在 Source (源) 字段中,用 CIDR 表示法指定您计算机的公有 IP 地址。例如,如果您的 IP 地址为 203.0.113.25,请指定 203.0.113.25/32,以便用 CIDR 表示法列出此 IP 地址。如果您的公司要分配同一范围内的地址,请指定整个范围,例如 203.0.113.0/24

    有关查找 IP 地址的信息,请参阅在您开始之前

  5. 选择 Save。

使用命令行向安全组添加规则

您可以使用以下任一命令。请确保此命令在您的本地系统中运行,而不是针对实例本身。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

向实例分配安全组

在启动实例时,您可以向实例分配安全组。在添加或删除规则时,所做的更改将自动应用于已分配安全组的所有实例。

在 EC2-Classic 中启动实例后,您就不能再更改其安全组。在 VPC 中启动实例后,您可以更改其安全组。想要了解更多有关信息,请参阅 Amazon VPC 用户指南中的更改实例的安全组主题。

  • 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 从 Windows 连接到 Linux 实例的更多相关文章

  1. AWS之SSH登录:使用 PuTTY 从 Windows 连接到 Linux 实例

    使用 PuTTY 从 Windows 连接到 Linux 实例 启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它. 注意 启动实例后,需要几分钟准备好实例,以便您能连接到实例 ...

  2. Xming + PuTTY 在Windows下远程Linux主机

    Xming + PuTTY 在Windows下远程Linux主机 一.原理     Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与 ...

  3. Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

    自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

  4. 解决使用putty 连接Windows主机与Linux虚拟机出现提示network error:connection refused问题

    使用putty 连接Windows主机与Linux虚拟机出现提示network error:connection refused的问题 问题描述: 主机与虚拟机可以互相ping通: 防火墙已经关闭 使 ...

  5. 利用Winscp,Putty实现Windows下编写Linux程序

    本文讲的方案实现以下功能:利用winscp和putty的脚本功能,实现在Window平台上编写代码,上传到Linux进行编译,然后取编译结果.需要用到3个文件,分别如下: (1) synchroniz ...

  6. 使用PuTTY在Windows中向Linux上传文件

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843207.html ...

  7. 转:Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序

    一.原理Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与显示器.键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议 ...

  8. putty(winscp)无法连接到linux(ubuntu)

    为了能在自己笔记本电脑上兼容公司的用64位系统编译出来的MapReduce程序,我把自己原来32位的ubuntu虚拟机删除后,安装了目前最新的ubuntu-14.04.2-desktop-amd64. ...

  9. AWS EC2 通过Linux终端:使用ssh连接到Linux实例

    AWS的ubuntu主机登录用户是ubuntu 只能通过秘钥的方式登录 如果在linux终端通过ssh远程登录步骤如下: 假如申请EC2主机的时候下载的key名称叫my-key.pem,并保存在本地l ...

随机推荐

  1. 一篇文章看懂Java并发和线程安全

    一.前言 长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章. 二.导读 1.为什 ...

  2. 【BZOJ4237】稻草人(CDQ分治,单调栈)

    [BZOJ4237]稻草人(CDQ分治,单调栈) 题面 BZOJ 题解 \(CDQ\)分治好题呀 假设固定一个左下角的点 那么,我们可以找到的右下角长什么样子??? 发现什么? 在右侧是一个单调递减的 ...

  3. Bzoj1899: [Zjoi2004]Lunch 午餐

    题面 传送门 Sol 首先显然吃饭久的要排在前面 之后再来分配队伍,设\(f[i][j]\)表示到第\(i\)个人,\(A\)队伍要等\(j\)的最小吃完饭时间 那么就是一个简单的背包吧... # i ...

  4. highcharts使用-拼接数据

    在写后台统计时,使用highcharts 作为数据视图化的工具 PHP端 拼接数据 1 首先分组查询出来数据 2 然后拼接出来想要的数据格式 $c_x ='';foreach ($courierGro ...

  5. onmouse事件

    常用的鼠标事件:onmouseenter,onmouseleave,onmouseover,onmouseout,onmouseup,onmousedown,onmousewheel,onmousem ...

  6. 为wampserver 添加新版本php支持

    1.1.  停止WAMP服务器. 2.下载要安装的PHP版本.下载Window版本的ZIP包啦:http://windows.php.net.解压到 Wamp的安装目录\bin\php\php7.2. ...

  7. [解决]Linux Tomcat启动慢--Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [236,325] milliseconds

    一.背景 今天部署项目到tomcat,执行./startup.sh命令之后,访问项目迟迟加载不出来,查看日志又没报错(其实是我粗心了,当时tomcat日志还没打印完),一开始怀疑是阿里云主机出现问题, ...

  8. wpf动态增加删除控件

    我在xaml中定义了一个名字为morepictureWrapPan为WrapPanel,然后将控件添加在此WrapPanel中.由于要实现控件的删除功能,所以增加的textbox和button的名字都 ...

  9. 1-5 hibernate学习笔记(11-14章)

    一,概念详解 1.持久化persistent 是指将内存中的数据保存到磁盘.数据库等存储设备中. 2.持久化对象:已经储存到磁盘或者数据库中的业务对象. 3.在java中对对象的持久化有三种方法: 1 ...

  10. poj-1207 THE 3n+1 problem

    Description Problems in Computer Science are often classified as belonging to a certain class of pro ...