ebs用户登录显示无法连接服务器,关于Amazon EC2:从私有EBS AMI启动实例后,“服务器拒绝了我们的密钥”...

我创建了自己的EBS AMI,与另一个AWS帐户共享,并使用新密钥对基于该映像启动了NEW实例,现在当我尝试连接到该新实例时,我得到了错误消息:"服务器拒绝了我们的密钥" 。

这是我所做的(逐步):

在我的个人帐户(带有我的个人密钥对)中配置了新的CentOS 6.3服务器

创建该服务器的EBS AMI映像

与我的客户的帐户共享了此图片

基于此共享映像+新密钥对,在我的客户帐户中启动了新实例

新启动的实例不希望采用新的密钥对。经过一些测试,我认为它接受我的个人密钥对。

如何从映像中创建新实例以接受新的密钥对?

我什至尝试删除原始映像中的" .ssh / authorized_keys"文件,基于该映像启动新实例,但没有公钥,仍然没有成功。

请告知如何创建不会附加到旧密钥对的图像

您如何创建新的密钥对? 您是让AWS创建它还是使用其他工具创建它的?

您好David,我在启动新实例时使用AWS创建了它。 没有手动做。

您正在使用什么ssh客户端?

当您查看/home/ec2-user/.ssh/authorized_keys时,您看到新的公共密钥,旧的个人密钥,还是同时看到这两者?

在两个位置:"。ssh / authorized_keys"和" /home/ec2-user/.ssh/authorized_keys"只有一个-旧的个人公共密钥

您是从现有的公共AMI开始还是从头开始创建自己的AMI?

我使用了这个AMI:aws.amazon.com/amis/centos-6-3-ebs-backed

我遇到了同样的问题。 我们得出结论了吗?

我对该错误消息也有类似的问题,这是我如何解决它。希望这对您或其他陷入困境的人有所帮助:

在AWS Console中确保实例运行正常并正在运行

检查您是否使用了正确的公共DNS地址(单击实例时列出)

从左侧选择安全组,然后单击要使用的安全组

单击入站选项卡

在"创建新规则:"对话框中,选择" SSH"

在源代码中输入您的IP地址和CIDR值。如果只是它,而您的网络上没有NAT,则使用32作为CIDR(例如?。?....?/ 32)。

点击添加规则

单击"应用规则更改"

右键单击您的实例,然后选择创建映像(EBS AMI)

在"创建图像"向导中为其指定图像名称,然后单击"创建"。

片刻之后,从AWS控制台的左侧导航栏中选择AMI。

右键单击新的AMI,然后单击启动实例。

在"请求实例向导"上,单击"继续",直到必须创建密钥对为止

选择一个密钥对并记下它

(注意:如果尚未获得此密钥对的.pem文件,则需要通过选择左侧导航栏上的密钥对,创建密钥对等来生成一个新的.pem文件。)

使用您为IP地址创建的规则选择安全组(CIDR为32-无子网掩码)

单击继续,然后在下一个屏幕上单击启动。

返回到"实例"视图并等待,直到您的实例已完全初始化且运行状况良好

打开PuttyGEN

点击工具栏中的转化,然后点击导入键

在文件浏览器中导航到您的.pem键,然后将其打开

从"参数"框中选择SSH-1(RSA)

将您的密钥对名称放在"密钥注释"框中(仅用于保管好房间)

单击"保存私钥",然后将.ppk文件保存在文件系统中的某个位置

腻子

在"主机名"框中输入您的EC2实例的公共DNS

输入端口22

在"连接类型"框中,勾选" SSH"单选按钮

在左侧导航栏中的"连接"树中单击" SSH"

点击验证

单击"身份验证参数"框中的"浏览",然后打开您的.ppk文件

点击左侧导航栏中的会话

在"已保存的会话"文本框中输入此连接的名称,然后单击"保存"(这样您不必每次都进行腻子连接设置,只需双击已保存的连接即可-对于那些不知道的对象)

点击打开

当提示您输入登录名时,您可能会使用" ec2-user"或" ubuntu"(提示:使用" root",您可能会收到一条消息,告诉您应使用哪个用户名!)

无需密码,.ppk文件将对您进行身份验证

希望您现在已连接到EC-2实例,一切顺利!

不知道为什么没有这个例外。对我来说很棒。

听到那个消息很开心 :)

"提示:使用root,您可能会收到一条消息,告诉您应该使用什么用户名!" -非常有创意!

太棒了,ec2-user是用户。

从字面上看,这是Internet上最佳的故障排除步骤。

你太客气了!很高兴它有所帮助!

我认为您可以删除"如果您的网络上没有NAT,则只需使用32作为CIDR(例如?。?。?。?/ 32)"就可以了-不管您是否在NAT后面只关系到您来自哪个公共IP,其中只有一个

还要创建图像只是出于谨慎考虑吗?它与SSH没有关系吗?否则,谢谢!

我是唯一为此不幸的人吗?不起作用?

我在新的SUSE实例中遇到了这个问题。我终于能够使用用户'root'进行连接。它一直拒绝ec2-user。

发现这是一个有用的答案。我选择了Ubuntu 12.04映像,并且不得不使用ubuntu用户而不是ec2-user登录。

这意味着您没有使用正确的用户名登录ec2实例。这是您可以用腻子连接到ec2实例的用户列表

对于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提供程序联系。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingPuTTY

就我而言,这是"中心"。

由于您的AMI来自社区AMI,而不是正式的公共AMI,因此可能没有在实例启动时设置它来复制ssh密钥,或者它使用了不同的机制来执行此操作。

我的理解是,要在启动时复制ssh密钥,必须在实例本身内部运行一些shell脚本,如此处简要描述。

AMI描述页面提到它已经"启用了cloud-init",因此也许可以通过CloudInit来实现。请参阅此处的文档。

好的,非常感谢大卫的帮助。我将尝试弄清楚还有什么可以做的。

我遇到了这个问题,原来我是ec2-user的时候才输入ec2_user

我一直忘记,有时用户是" centos"而不是" ec2-user"。这虽然使我记忆犹新。

我通过选择用户作为AWS ubuntu machin的ubuntu解决了我的问题。 因此,请验证正确的用户帐户和机器类型。

请查看以下链接:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

默认情况下,Amazon将在新密钥后添加现有密钥。 我们可以通过将驱动器安装在其他活动实例上来解决该问题,并从文件.ssh / authorized_keys中删除内容,并添加新密钥的pem密钥文件。

仅显示Server Refused我们的密钥只是一个原因。

那就是:服务器的密钥对和用户名组合不正确,我已经遇到很多次了。

这不能解决问题。

我确定您的组合不正确,或者您使用的密钥对不正确

这实际上对我来说是正确的答案,我输入的是ec2_user而不是ec2-user。因此,否决票有点苛刻。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值