ssh 使用 aws
使用 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) (公有 DNS (IPv4)) 列;如果此列处于隐藏状态,请选择 Show/Hide (显示/隐藏) 图标并选择 Public DNS (IPv4) (公有 DNS (IPv4))。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。
(仅限 IPv6) 获取实例的 IPv6 地址
如果您已将 IPv6 地址分配给您的实例,则可选择使用实例的 IPv6 地址而非公共 IPv4 地址或公共 IPv4 DNS 主机名来连接实例。您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。可以使用 Amazon EC2 控制台获取实例的 IPv6 地址。选中 IPv6 IPs (IPv6 IP) 字段。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。有关 IPv6 的更多信息,请参阅IPv6 地址。
查找私有密钥
获取您在启动实例时指定的密钥对的
.pem文件在您电脑上位置的完全限定路径。获取用于启动实例的 AMI 的默认用户名称
对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是
ec2-user。对于 Centos AMI,用户名称是
centos。对于 Debian AMI,用户名称是
admin或root。对于 Fedora AMI,用户名为
ec2-user或fedora。对于 RHEL AMI,用户名称是
ec2-user或root。对于 SUSE AMI,用户名称是
ec2-user或root。对于 Ubuntu AMI,用户名称是
ubuntu。另外,如果
ec2-user和root无法使用,请与 AMI 供应商核实。
允许从您的 IP 地址到您的实例的入站 SSH 流量
确保与您的实例关联的安全组允许来自您的 IP 地址的传入 SSH 流量。默认情况下,默认安全组不允许传入 SSH 流量。有关更多信息,请参阅 为您的 Linux 实例授权入站流量。
使用 PuTTYgen 转换您的私有密钥
PuTTY 本身不支持 Amazon EC2 生成的私有密钥格式 (.pem)。PuTTY 有一个名为 PuTTYgen 的工具,可将密钥转换成所需的 PuTTY 格式 (.ppk)。您必须将私有密钥转换为此格式 (.ppk),然后才能尝试使用 PuTTY 连接到您的实例。
转换您的私有密钥
启动 PuTTYgen (例如,在开始菜单中,选择 All Programs > PuTTY > PuTTYgen)。
在 Type of key to generate 下,选择 RSA。

如果您使用的是旧版本的 PuTTYgen,请选择 SSH-2 RSA。
选择 Load。默认情况下,PuTTYgen 仅显示扩展名为
.ppk的文件。要找到您的.pem文件,请选择显示所有类型的文件的选项。
选择您在启动实例时指定的密钥对的
.pem文件,然后选择 Open。选择 OK 关闭确认对话框。选择 Save private key,以 PuTTY 可以使用的格式保存密钥。PuTTYgen 显示一条关于在没有口令的情况下保存密钥的警告。选择是。
注意
私有密钥的口令是一层额外保护,因此,即使您的私有密钥被泄露,在没有口令的情况下,该密钥仍不可用。使用口令的缺点是让自动化变得更难,因为登录到实例或复制文件到实例需要进行人为干预。
为该密钥指定与密钥对相同的名称 (如,
my-key-pair)。PuTTY 自动添加.ppk文件扩展名。
您的私有密钥格式现在是正确的 PuTTY 使用格式了。您现在可以使用 PuTTY 的 SSH 客户端连接到实例。
启动 PuTTY 会话
通过以下过程使用 PuTTY 连接到您的 Linux 实例。您需要使用为私有密钥创建的 .ppk 文件。如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。
启动 PuTTY 会话
(可选) 您可以在本地系统 (而不是实例) 上使用 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-idinstance_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部分仅在实例首次启动之后可用。启动 PuTTY (在开始菜单中,选择 All Programs > PuTTY > PuTTY)。
在 Category 窗格中,选择 Session 并填写以下字段:
在 Host Name 框中,输入
user_name@public_dns_name。确保为您的 AMI 指定相应的用户名。例如:对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是
ec2-user。对于 Centos AMI,用户名称是
centos。对于 Debian AMI,用户名称是
admin或root。对于 Fedora AMI,用户名为
ec2-user或fedora。对于 RHEL AMI,用户名称是
ec2-user或root。对于 SUSE AMI,用户名称是
ec2-user或root。对于 Ubuntu AMI,用户名称是
ubuntu。另外,如果
ec2-user和root无法使用,请与 AMI 供应商核实。
(仅限 IPv6) 要使用实例的 IPv6 地址连接,请输入
user_name@ipv6_address。确保为您的 AMI 指定相应的用户名。例如:对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是
ec2-user。对于 Centos AMI,用户名称是
centos。对于 Debian AMI,用户名称是
admin或root。对于 Fedora AMI,用户名为
ec2-user或fedora。对于 RHEL AMI,用户名称是
ec2-user或root。对于 SUSE AMI,用户名称是
ec2-user或root。对于 Ubuntu AMI,用户名称是
ubuntu。另外,如果
ec2-user和root无法使用,请与 AMI 供应商核实。
在 Connection type 下,选择 SSH。
确保 Port 为 22。

(可选) 您可以配置 PuTTY 以定期自动发送“保持连接”数据以将会话保持活动状态。要避免由于会话处于不活动状态而与实例断开连接,这是非常有用的。在 Category 窗格中,选择 Connection,然后在 Seconds between keepalives 字段中输入所需的间隔。例如,如果您的会话在处于不活动状态 10 分钟后断开连接,请输入 180 以将 PuTTY 配置为每隔 3 分钟发送一次保持活动数据。
在 Category 窗格中,展开 Connection,再展开 SSH,然后选择 Auth。完成以下操作:
选择 Browse。
选择您为密钥对生成的
.ppk文件,然后选择 Open。(可选) 如果打算稍后重新启动此会话,则可以保存此会话信息以便日后使用。在 Category 树中选择 Session,在 Saved Sessions 中输入会话名称,然后选择 Save。
选择打开以便开始 PuTTY 会话。

如果这是您第一次连接到此实例,PuTTY 会显示安全警告对话框,询问您是否信任您要连接到的主机。
(可选) 验证安全警报对话框中的指纹是否与之前在步骤 1 中获取的指纹匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。
选择是。此时会打开一个窗口并且您连接到了您的实例。
注意
如果您在将私有密钥转换成 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 地址。
从 http://winscp.net/eng/download.php 上下载并安装 WinSCP。对于大多数用户而言,采用默认安装选项就可以了。
启动 WinSCP。
在 WinSCP 登录屏幕中,对于 Host name,请输入实例的公有 DNS 主机名称或公有 IPv4 地址。
(仅限 IPv6) 要使用实例的 IPv6 地址登录,请输入实例的 IPv6 地址。
对于 User name (用户名),请输入默认的 AMI 用户名。
对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是
ec2-user。对于 Centos AMI,用户名称是
centos。对于 Debian AMI,用户名称是
admin或root。对于 Fedora AMI,用户名为
ec2-user或fedora。对于 RHEL AMI,用户名称是
ec2-user或root。对于 SUSE AMI,用户名称是
ec2-user或root。对于 Ubuntu AMI,用户名称是
ubuntu。另外,如果
ec2-user和root无法使用,请与 AMI 供应商核实。
为您的实例指定私有密钥。对于 Private key,请输入私有密钥的路径,或选择“...”按钮以浏览文件。对于较新版本的 WinSCP,请选择 Advanced 以打开高级站点设置,然后在 SSH 下面选择 Authentication 以查找 Private key file 设置。
以下是 WinSCP 版本 5.9.4 中的屏幕截图:

WinSCP 需要 PuTTY 私有密钥文件 (
.ppk)。您可以使用 PuTTYgen 将.pem安全密钥文件转换成.ppk格式。有关更多信息,请参阅 使用 PuTTYgen 转换您的私有密钥。(可选) 在左侧面板中,选择 Directories,然后对于 Remote directory,请输入要将文件添加到其中的目录路径。对于较新版本的 WinSCP,请选择 Advanced 以打开高级站点设置,然后在 Environment 下面选择 Directories 以查找 Remote directory 设置。
选择 Login 进行连接,然后选择 Yes,将主机指纹添加到主机缓存。

建立连接后,在连接窗口中,您的 Linux 实例显示在右侧,本地计算机显示在左侧。您可以直接将文件从本地计算机拖放到远程文件系统。有关 WinSCP 的更多信息,请参阅 http://winscp.net/eng/docs/start中的项目文档。
如果您收到一个“Cannot execute SCP to start transfer”(无法执行 SCP 以开始传输) 错误,必须先在 Linux 实例上安装 scp。对于某些操作系统,该命令会位于
openssh-clients程序包中。对于 Amazon Linux 变体 (如经 Amazon ECS 优化的 AMI),使用以下命令安装 scp.[ec2-user ~]$sudo yum install -y openssh-clients
ssh 使用 aws的更多相关文章
- 使用SSH连接AWS服务器
使用SSH连接AWS服务器 一直有一台AWS云主机,但是之前在Windows平台都是使用Xshell连接的,换到Ubuntu环境之后还没有试,昨天试了一下,终于使用SSH连接成功了,这里记录一下步骤: ...
- SecureCRT连接AWS EC2云主机密码登录
申请了亚马逊的EC2,要通过ssh 加密钥的形式登录,特别麻烦,而且感觉ssh登录AWS的云主机后好卡,这里是更改成用户名和密码的形式登录云主机,可以通过SecureCRT直接登录 1.首先通过ssh ...
- 初始化openresty开发环境
参考链接 https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 初始化git ...
- AWS EC2 通过Linux终端:使用ssh连接到Linux实例
AWS的ubuntu主机登录用户是ubuntu 只能通过秘钥的方式登录 如果在linux终端通过ssh远程登录步骤如下: 假如申请EC2主机的时候下载的key名称叫my-key.pem,并保存在本地l ...
- AWS之SSH登录:使用 PuTTY 从 Windows 连接到 Linux 实例
使用 PuTTY 从 Windows 连接到 Linux 实例 启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它. 注意 启动实例后,需要几分钟准备好实例,以便您能连接到实例 ...
- AWS ECU SSH无法连接问题处理
AWS ECU SSH无法连接问题处理,因同事误操作导致/var/empty/sshd目录权限为771,需要修改为711,因AWS只有一台实例,所以需要通过建立临时实例来挂载“卷”来修改/var/ ...
- ssh tunneling应用案例-AWS EC2 vnc图形化桌面的支持
一般地,无论是AWS EC2还是阿里云的云主机,linux系统默认都只提供ssh登录方式.如果你是一个技术控,非常希望把图形化界面给折腾出来,这其中就不需有vnc server的支持,除此之外,还涉及 ...
- AWS EC2 实例 SSH 无法登录故障
文章链接 故障表现 在使用 jumperver 登录 AWS ec2 实例的时候发现 ssh 配合秘钥登录的时候无法登录, 具体报错如下: ssh -i /path/xx.pem user@10.0. ...
- 【AWS】【TroubleShooting】EC2实例无法使用SSH远程登陆(EC2 failure for SSH connection)
1. Login AWS web console and check the EC2 instance.
随机推荐
- python-单元测试unittest
目录: 1.unittest.TestCase中常用的断言方法 1.1 subTest子测试 1.2 套件测试 1.3 批量测试单个用例 2. 加载器 2.1加载器协议 2.2.执行器 TestRun ...
- [Unity插件]Lua行为树(四):条件节点和行为节点
条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了. 它们的继承关系如下: Condit ...
- 如何安装 Microsoft Office 兼容包,以便您可以在早期版本的 Microsoft Office 中打开和保存 Office Open XML 格式
https://support.microsoft.com/zh-cn/kb/923505 针对 Office 2003 的支持已终止 Microsoft 已于 2014 年 4 月 8 日终止了针对 ...
- python中import和from-import的区别
. import导入模块的路径两种方式 # 将模块所在路径再程序中添加到sys.path列表中 import sys sys.path import导入模块按照sys.path顺序依次查找,“”代表当 ...
- 《算法》BEYOND 部分程序 part 3
▶ 书中第六章部分程序,加上自己补充的代码,包括 Graham 扫描生成凸包,计算最远点对 ● Graham 扫描生成凸包 package package01; import java.util.Ar ...
- RecyclerView通用适配器
在Android开发中使用列表呈现数据的情况很多,现在我们常用RecyclerView呈现列表,为了开发敏捷和代码优雅,我们现在来打造<?xml version="1.0" ...
- idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行
01,Could not autowire. No beans of 'UserMapper' type found 01.1,问题描述,通过反射动态实现的接口在调用时会出现以上提示,常见的如 ORM ...
- 【Linux】CentOS7 安装,遇到的各种问题,并修复win7启动项
https://www.cnblogs.com/sxdcgaq8080/p/7457255.html ------------------------------------------------- ...
- Linux命令之lsof
1.lsof简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. ...
- 尚硅谷springboot学习23-SpringMVC配置
1. Spring MVC auto-configuration 以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoConfiguration) Inclusion of ...