【问题标题】:SSH to Amazon EC2 instance using PuTTY in Windows在 Windows 中使用 PuTTY SSH 到 Amazon EC2 实例
【发布时间】:2012-05-04 11:10:27
【问题描述】:

我是 Amazon Web 服务的新手,正在尝试使用 windows 中的 putty 启动一个 Amazon 实例并通过 SSH 连接到它。这些是我遵循的步骤:

  1. 已创建密钥对。

  2. 为 SSH 和 HTTP 添加了安全组规则。

  3. 使用上述密钥对和安全组启动 EC2 实例。

  4. 使用 PuTTYgen 将 *.pem 文件转换为 *.ppk

  5. 使用 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?

标签: ssh amazon-ec2 amazon-web-services putty


【解决方案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 有两个“转换密钥”选项。

  1. 使用 File->Load Private Key 选项将您的 .pem 文件加载到 puttygen 中,然后使用 Save Private Key 按钮将其另存为 .ppk 文件。
  2. 请勿使用菜单选项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 上的说明进行连接。验证几件事:

          1. 您正确转换了密钥,例如选择正确的 .pem 文件,保存为 private 密钥,1024 位 SSH-2 RSA
          2. 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))

                  【讨论】:

                    猜你喜欢
                    • 2017-08-15
                    • 2019-10-15
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-03-02
                    • 2021-07-23
                    • 2011-07-13
                    • 2015-06-22
                    • 1970-01-01
                    相关资源
                    最近更新 更多