在 Windows 中使用 PuTTY SSH 到 Amazon EC2 实例
Posted
技术标签:
【中文标题】在 Windows 中使用 PuTTY SSH 到 Amazon EC2 实例【英文标题】:SSH to Amazon EC2 instance using PuTTY in Windows 【发布时间】:2012-05-04 11:10:27 【问题描述】:我是 Amazon Web 服务的新手,正在尝试使用 windows 中的 putty 启动一个 Amazon 实例并通过 SSH 连接到它。这些是我遵循的步骤:
已创建密钥对。
为 SSH 和 HTTP 添加了安全组规则。
使用上述密钥对和安全组启动 EC2 实例。
使用 PuTTYgen 将 *.pem
文件转换为 *.ppk
使用 putty 尝试连接到实例的公共 DNS 并提供 *.ppk
文件。
我使用“root”和“ec2-user”登录,并使用 SSH1 和 SSH2 创建了 PPK 文件,对于所有这些尝试,我在 putty 中收到以下错误,
“服务器拒绝了我们的密钥”
请大家帮忙,任何建议将不胜感激。
【问题讨论】:
你可能想看看这个:wowza.com/forums/… 您使用的 AMI 是哪个操作系统? @Geoff:谢谢!我使用的是 amzn-ami-2011.09.1.x86_64-ebs (ami-7341831a),它说有 Amazon Linux 平台。 谢谢,在发布问题之前我确实检查了这个链接,我正在遵循其中提到的所有步骤。仍然收到错误! 如果您使用的是 Amazon Linux,那么您应该使用ec2-user
登录 - root
将永远无法工作。但是您也已经尝试过ec2-user
。您确定实例已配置为使用此密钥对?并且您正在为您的实例连接到正确的弹性 IP 地址或 AWS 公共 DNS?
【参考方案1】:
我假设 OP 已经解决了这个问题或者继续前进,但答案是使用 ubuntu
作为用户(如果服务器是 ubuntu)。
【讨论】:
这太棒了。没有涵盖我发现的任何明显位置。 Brilliant :-) 两年过去了,Amazon 文档仍未更新,并声明用户是所有 Amazon Linux AMI 的“ec2-user”。即使 OP 继续前进,我也会合理地接受这个作为答案。 @Jason 所有 Amazon Linux AMI 的用户是 ec2-user。 Ubuntu 不是亚马逊 Linux。 “Amazon Linux”是来自 Amazon 的特定 Linux 发行版。 Amazon 还提供其他 Linux 发行版,例如 RHEL(用户是 ec2-user 或 root)、CentOS(用户是 centos)、Ubuntu(用户是 ubuntu 或 root)、Fedora(用户是 ec2-user)和 SUSE(用户是 ec2 -user 或 root)。【参考方案2】:1) 确保您在 EC2 实例的安全组中打开了端口 22 (SSH)。
2) 尝试使用弹性 IP 而不是公共 DNS 名称连接。
我希望你已经按照这些步骤Connecting EC2 from a Windows Machine Using PuTTY
【讨论】:
使用弹性 IP 地址连接在我的情况下有效。创建和关联 IP 地址后,我失去了访问权限。谢谢! 他说问题是身份验证,而不是 DNS 解析或防火墙。【参考方案3】:另一种情况是,当我从 windows 使用 putty 连接到运行 ubuntu 的 EC2 实例时,出现“服务器拒绝我们的密钥”错误:
私钥被错误地从 .pem 转换为 .ppk。
puttygen 有两个“转换密钥”选项。
-
使用 File->Load Private Key 选项将您的 .pem 文件加载到 puttygen 中,然后使用 Save Private Key 按钮将其另存为 .ppk 文件。
请勿使用菜单选项Conversions->Import Key加载EC2生成的.pem文件。
请参阅下面的 puttygen 屏幕截图,并标记了两个菜单选项。
【讨论】:
【参考方案4】:检查用户名,你的机器应该是“ubuntu”。 检查是否在安全组中的端口 22 上启用了流量。 检查您是否使用了正确的网址,即 ubuntu@public/elasticip
【讨论】:
很好,你也完成了我的查询【参考方案5】:也许值得再检查一件事。转到 AWS 控制台,右键单击实例并选择“连接...”。它将显示您要使用的 DNS 名称。如果您在某个时候重新启动该实例,则该 DNS 名称可能已更改。
【讨论】:
【参考方案6】:当我尝试连接由 Elastic Beanstalk 服务 (EBS) 自动创建的实例时,我遇到了类似的问题。但是,一旦我将现有的密钥名称链接到 EBS(在 Environment Details -> Edit Configuration -> Server Tab -> Existing Key Pair 下),我就能够使用“ec2-user”和现有的密钥文件登录(转换为.ppk) 与腻子。
然而,这会终止正在运行的实例并通过上述密钥对重新构建一个新实例。
【讨论】:
【参考方案7】:以防万一它对其他人有所帮助,我在更改实例中主文件夹的权限后遇到了此错误。我正在测试一些东西,并在我的主文件夹上执行了 chmod -R 777 。一旦发生这种情况,一旦我退出,我实际上就被锁定了。
【讨论】:
【参考方案8】:如果您直接使用“.pem”文件而不是转换后的“.ppk”文件对 AWS 进行 SSH,则不会遇到此错误。
1) 使用 Git Bash 代替 putty。因为您可以在 Git Bash 中运行所有 Linux 命令。通过安装 Git,您可以访问 Git Bash 终端
2) 右键单击您拥有“.pem”的文件夹并选择“Git Bash Here”。
3) 您的密钥不得公开查看,SSH 才能正常工作。所以运行“chmod 400 pemfile.pem”。
4) 使用其公共 DNS 连接到您的实例 - "ssh -i "pemfile.pem" ec2-user@ec2-x-x-x-x.us-west-1.compute.amazonaws.com"
5) 确保在 your_instance->security_group->inbound_rules 中将您的 SSH 网络 IP 列入白名单
【讨论】:
使用 Git Bash 代替 Putty 为我工作。谢谢!【参考方案9】:我假设您正在关注this guide,并使用subsequent page 上的说明进行连接。验证几件事:
-
您正确转换了密钥,例如选择正确的 .pem 文件,保存为 private 密钥,1024 位 SSH-2 RSA
Auth 设置(连接教程中的第 4 步)正确
【讨论】:
【参考方案10】:在我将我正在使用的 debian AMI 的用户名更改为“admin”之前,我遇到了同样的问题(并采取了相同的步骤)。
您应该查找正在使用的 AMI 的用户名。 debian AMI 记录在这里 http://wiki.debian.org/Cloud/AmazonEC2Image/Squeeze
【讨论】:
【参考方案11】:我也遇到过同样的问题。您使用的 AMI 也是“Cloud Formation”模板解决方案使用的那个。
最后我放弃了,并创建了一个 Red Hat 实例。然后我可以使用用户 root
通过 SSH 正常连接。
此处的说明:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html 在使用 Red Hat 实例但不使用 Amazon Linux 实例时可以正常工作。我假设他们有一些我不想尝试的用户名(root、ec2-user 和许多其他明显的用户名,都被拒绝了)
希望对某人有所帮助!
【讨论】:
更新:我已经创建了一个“云形成”设置并且 SSH 很好。这次我使用了允许您指定密钥对的模板。许多库存模板不允许这样做,因为您似乎无法在创建后添加密钥对,这意味着您永远无法 SSH。【参考方案12】:我使用 Debain AMI,我尝试使用 ec2-user,root 但正确的登录名是“admin”。
【讨论】:
【参考方案13】:当我尝试创建新的密钥对并尝试使用新的 pem/ppk 文件时,我遇到了同样的错误。我注意到实例上的 Key Pair Name 字段仍然是旧的并且正在四处寻找。显然,你 can't change 一个密钥对。所以我回到原来的密钥对。幸运的是,我没有删除任何内容,所以这很容易。
【讨论】:
【参考方案14】:尝试其他 SSH 客户端,例如 Poderosa。它接受 pem 文件,因此您无需转换密钥文件。
【讨论】:
Poderosa 需要原始的 pem 文件,但是转换后的文件是 puttygen 创建的 Poderosa 需要原始的 pem 文件,而不是 puttygen 创建的转换后的文件【参考方案15】:如果您已有密钥对,请按以下步骤操作: 使用 PuTTYgen 将 *.pem 转换为 *.ppk(加载 pem 文件密钥,然后保存 ppk) 将 ppk 身份验证密钥文件添加到 Putty SSH>身份验证选项 输入“主机名(或 IP 地址)”字段:ubuntu@your-ip-address-of-ubuntu-ec2-host))
【讨论】:
以上是关于在 Windows 中使用 PuTTY SSH 到 Amazon EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章