亚马逊AWS EC2实例 - 无法通过SSH连接

9
这不应该这么难。我无法通过SSH客户端连接到新的AWS EC2实例。我是从Win 7桌面连接的。
实例操作系统:Debian 6
AMI: debian-squeeze-i386-20121119-e4554303-3a9d-412e-9604-eae67dde7b76-ami-1977f070.1(ami-a121a6c8)
用户:尝试了root和ec2-user 使用由AWS生成并下载的.pem密钥对
在实例上确认了安全组和密钥对名称
SSH端口22已开放:Nmap显示正常,并且Telnet收到欢迎回复
使用3个不同的客户端:所有客户端都可以正常连接
PuTTY回复:Server refused our key
MindTerm Java浏览器插件回复:身份验证失败,权限被拒绝
Bitvise SSH回复:尝试公钥身份验证;身份验证失败;
重新启动实例,清洗,漂洗,重复......
重新构建新实例和新密钥对,清洗,漂洗,重复......
连接不是问题所在。为什么实例不接受.pem文件作为密码?我是否遗漏了其他步骤?我按照Google搜索到的每一个指南进行了操作。AWS支持很糟糕。stackoverflow来拯救......

有人在使用EC2和Debian 6吗?用户名不同吗?我读到Ubuntu实例有一个不同的用户名(嗯,“ubuntu”),但我也尝试了“debian”,没有成功... - Geek Stocks
由于EC2允许第三方发布AMI,因此用户名可以是发布者决定设置的任何内容。有些情况下它可能是root、ec2-user、ubuntu、bitnami等。 - datasage
请查看这个答案,它有效:https://dev59.com/ImEi5IYBdhLWcg3wPKax#57961330 - DragonFire
7个回答

15
根据Debian wiki提供的AMI文档,您需要使用用户名"admin"进行登录。

Alpine Linux AMI的文档不全,用户名为“alpine” - 登录为“USER”后要成为“root”,您需要执行“sudo -s”。 - Stuart Cardall

1

我在通过ssh连接EC2时遇到了许多问题。

ssh -i the-keypair-filename root@yourdomain.com

- 秘钥文件必须与目录在同一级别。 - 我只是使用终端进行连接。

确保在启动实例时生成或分配秘钥对。

此外,您可以在 AWS 管理控制台中验证所设置的秘钥对,方法是选择运行的实例,然后查找“密钥名称:”。

希望这有所帮助。


CoderDan,我应该在哪里输入这个命令?(如果需要,假设使用PuTTY或告诉我您的客户端)我正在从Win 7桌面连接。终端? - Geek Stocks
抱歉回复晚了。但我使用的是Mac OS X,在Windows上,我认为它可以在命令行中工作。 - CoderDan
太好了!我忘记在启动实例时分配密钥对,这给我造成了很多问题。谢谢! - Slartibartfast
1
你可以在任何位置使用 ssh -i /path/to/my.pem user@host - Stuart Cardall

1
我的问题是我在fstab文件中没有添加一个预期的卷,所以服务器没有完全启动,sshd守护进程也没有运行。
使用以下命令进行检查:
    telnet HOST 22

在浪费大量时间之前,请检查服务器日志以确保其正常启动。


0

使用ec2-user密码的Amazon Linux AMI在此页面底部列出。

http://aws.amazon.com/amazon-linux-ami/

如果您尝试使用ec2-user,请检查您是否正在使用其中之一,或者检查您正在使用的AMI的文档。

Teri


0

尝试使用“admin”用户名,忽略亚马逊建议的用户名。


0

我曾经遇到过类似的问题,但是我通过以下方法解决了这个问题。

1)编辑我的chef文件夹中的knife.rb文件,即:\Users\Administrator\chef-starter\chef-repo.chef\knife.rb,如下所示:

knife[:aws_access_key_id]     = "xxxxxxxxxxxxxxxxxxxx"
knife[:aws_secret_access_key] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
knife[:region]                = 'ap-southeast-1'
knife[:aws_ssh_key_id] = "ChefUser"
knife[:ssh_user]="ec2-user"

在命令提示符中,输入创建ec2服务器的命令:
knife ec2 server create -r "role[webserver]" --image ami-abcd1234 --flavor t1.micro -G  ChefClient -x root -N server01 -i H:\Chef-files\ChefUser.pem

请注意,即使我在knife.rb文件中提供了所有细节,我仍然需要通过-i选项在命令行中提供.pem文件路径。这解决了我的问题。
请检查一下,如果我的解决方案对您有帮助。
祝好,
Chandan

-3

以"ubuntu"为用户名登录成功:

ssh -i private_key.pem ubuntu@myubuntuserver

希望能帮到你

--Erin


2
我认为原帖作者说的是使用Debian,而不是Ubuntu。 - juhist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接