30

我是亚马逊网络服务的新手,正在尝试使用 Windows 中的腻子启动一个亚马逊实例并通过 SSH 连接到它。这些是我遵循的步骤:

  1. 创建了一个密钥对。

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

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

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

  5. 使用 putty 尝试连接到实例的公共 DNS 并提供*.ppk文件。

我使用“root”和“ec2-user”登录,并使用 SSH1 和 SSH2 创建了 PPK 文件,对于所有这些尝试,我在 putty 中收到以下错误,

“服务器拒绝了我们的密钥”

你们能帮忙吗,任何建议将不胜感激。

4

15 回答 15

32

我假设 OP 已经解决了这个问题或以其他方式继续前进,但答案是ubuntu作为用户使用(如果服务器是 ubuntu)。

于 2013-01-06T02:59:14.040 回答
10

1) 确保您在 EC2 实例的安全组中打开了端口 22 (SSH)。

2) 尝试使用弹性 IP 而不是公共 DNS 名称连接。

我希望您已按照以下步骤使用 PuTTY 从 Windows 机器连接 EC2

于 2012-04-24T10:20:08.170 回答
4

另一种情况是,当我使用 putty 从 Windows SSH 到运行 ubuntu 的 EC2 实例时,出现“服务器拒绝我们的密钥”错误:

私钥错误地从 .pem 转换为 .ppk。

puttygen 有两个“转换密钥”选项。

  1. 使用File->Load Private Key选项将您的 .pem 文件加载到 puttygen 中,然后使用Save Private Key按钮保存为 .ppk 文件。
  2. 不要使用菜单选项Conversions->Import Key来加载 EC2 生成的 .pem 文件。

    请参阅下面的 puttygen 屏幕截图,其中标记了两个菜单选项。

使用 puttygen 的正确菜单选项 使用 puttygen 拧菜单选项

于 2016-01-06T13:57:46.580 回答
2

Check the username, it should be "ubuntu" for your machine. Check if traffic is enabled on port 22 in Security group. Check if you are using the correct url i.e ubuntu@public/elasticip

于 2015-04-14T12:22:16.627 回答
1

也许值得再检查一件事。转到 AWS 控制台,右键单击实例并选择“连接...”。它将显示您要使用的 DNS 名称。如果您在某个时候重新启动该实例,则该 DNS 名称可能已更改。

于 2012-04-23T23:45:19.723 回答
1

当我尝试连接由 Elastic Beanstalk 服务 (EBS) 自动创建的实例时,我遇到了类似的问题。但是,一旦我将现有的密钥名称链接到 EBS(在 Environment Details -> Edit Configuration -> Server Tab -> Existing Key Pair 下),我就可以使用“ec2-user”和现有的密钥文件登录(转换为.ppk) 与腻子。

但是,这会终止正在运行的实例并通过上面提到的密钥对重新构建一个具有访问权限的新实例。

于 2013-05-14T08:33:25.133 回答
1

以防万一它对其他人有帮助,我在更改实例中主文件夹的权限后遇到了这个错误。我正在测试一些东西,并在我的主文件夹上执行了 chmod -R 777 。一旦发生这种情况,一旦我退出,我就被有效地锁定了。

于 2015-03-05T12:35:01.017 回答
1

如果您直接使用“.pem”文件而不是转换后的“.ppk”文件对 AWS 进行 SSH,您将不会遇到此错误。

1) 使用 Git Bash 代替腻子。因为您可以在 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-xxxx.us-west-1.compute.amazonaws.com”

5) 确保在 your_instance->security_group->inbound_rules 中将 SSH 的网络 IP 列入白名单

于 2020-04-02T10:50:57.743 回答
0

当我尝试创建一个新的密钥对并尝试使用那个新的 pem/ppk 文件时,我遇到了同样的错误。我注意到实例上的 Key Pair Name 字段仍然是旧的并且正在四处寻找。显然,您不能更改密钥对。所以我回到原来的密钥对。幸运的是,我没有删除任何内容,所以这很容易。

于 2015-02-02T18:15:49.177 回答
0

在我将使用的 debian AMI 的用户名更改为“admin”之前,我遇到了同样的麻烦(并采取了相同的步骤)。

您应该查找正在使用的 AMI 的用户名。debian AMI 记录在这里 http://wiki.debian.org/Cloud/AmazonEC2Image/Squeeze

于 2013-03-30T11:50:58.783 回答
0

我也有同样的问题。您正在使用的 AMI 也是“Cloud Formation”模板解决方案所使用的。

最后我放弃了,并创建了一个 Red Hat 实例。然后我可以使用用户通过 SSH 进行连接root

此处的说明:http ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html使用 Red Hat 实例但不使用 Amazon Linux 实例可以正常工作。我假设他们有一些我不想尝试的用户名(root、ec2-user 和许多其他明显的用户名,都被拒绝了)

希望对某人有所帮助!

于 2013-04-11T17:12:40.287 回答
0

Try an alternative SSH client, like Poderosa. It accepts pem files, so you will not need to convert the key file.

于 2012-10-16T11:41:10.153 回答
0

我假设您正在遵循本指南,并使用后续页面上的说明进行连接。验证几件事:

  1. 您正确转换了密钥,例如选择了正确的 .pem 文件,保存为私钥,1024 位 SSH-2 RSA
  2. Auth 设置(连接教程中的第 4 步)是正确的
于 2012-04-23T20:31:48.600 回答
0

我使用 Debain AMI 并尝试使用 ec2-user,root 但正确的登录名是“admin”。

于 2013-12-18T17:19:07.790 回答
0

如果您已有密钥对,请按照以下步骤操作: 使用 PuTTYgen 将 *.pem 转换为 *.ppk(加载 pem 文件密钥,然后保存 ppk)将 ppk auth 密钥文件添加到 Putty SSH>Auth options 输入“主机名(或 IP 地址) )" 字段:ubuntu@your-ip-address-of-ubuntu-ec2-host))

于 2020-12-01T18:05:25.087 回答