Amazon EC2权限被拒绝(publickey)

Tre*_*vor 72 ssh amazon-ec2 amazon-web-services

这似乎是一个常见的问题,但我的具体情况似乎有点不同.

我使用命令行工具设置了一个新的Amazon EC2实例,并通过SSH连接并完成了一些配置工作.

但是,最初,我不能ssh到实例,我必须停止并重新启动实例,然后我可以连接.在重新启动之前,我得到了响应.

Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

那是昨晚,今天早上我回到同一个实例,现在我得到的只是

Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

我试过没有快乐重启实例.

任何人都能指出我在正确的方向吗?昨晚工作的命令不再有效,我从Macbook Pro连接.

Tre*_*vor 75

我会回答我自己的问题,以防其他人看到同样的事情......昨晚我做了:

ssh-add ~/.ssh/[keypair name]
Run Code Online (Sandbox Code Playgroud)

然后连接:

ssh ec2-user@[ec2 instance ip]
Run Code Online (Sandbox Code Playgroud)

今天早上我尝试了同样的,无法连接.但是这样做

ssh -i ~/.ssh/[keypair name] ec2-user@[ec2 instance ip]
Run Code Online (Sandbox Code Playgroud)

让我进来

ssh-add再次使用密钥对让我进入.我猜测ssh-add只能在我发布的shell中工作.当我关闭终端窗口并打开另一个时,我不再使用该密钥对而不明确.

  • 如果是ubuntu实例,请使用ssh -i~/.ssh/[keypair name]**ubuntu**@ [ec2 instance ip] (20认同)
  • 谢谢你,一直忘记使用"ec2-user"部分,并且返回的错误信息对于那个错误并不是很有用 (8认同)
  • 尝试更改用户名.如果你在Ubuntu'ubuntu'应该是你的用户名. (2认同)

Rya*_*anM 28

这种情况发生在我身上,因为我没有使用正确的用户名.我在使用我正在关注的教程中使用的AMI时能够登录,但是当我尝试使用不同的AMI(来自Bitnami的ubuntu + LAMP)时,我会收到Permission denied (public key).错误.我终于意识到如果我将教程ami的用户名改为ubuntu,ec2-user我会得到同样的错误.

所以快速谷歌告诉Bitnami AMI的用户名是bitnami.问题解决了.

  • 谢谢你的提示.在我的情况下,相反,我需要使用`ubuntu`作为用户名. (3认同)

Bry*_*ink 14

我遇到了类似的问题,结果证明是对主文件夹的权限.值得庆幸的是,我仍然有另一个现有的ssh连接打开,所以我能够检查ec2实例上的日志:

$ sudo less/var/log/secure

其中包含:

Dec  9 05:58:20 ... sshd[29816]: Authentication refused: 
    bad ownership or modes for directory /home/ec2-user
Run Code Online (Sandbox Code Playgroud)

这是通过发出命令修复的:

$ chmod og-rwx/home/ec2-user

我希望这有助于其他人.

  • 回答了我自己的问题:将EBS卷附加到不同的EC2,进入并更改权限,然后重新附加到您关心的实例 (5认同)

小智 12

请注意,重新启动实例后,dns名称已更改.我多次摔倒了.密钥文件仍然有效,但"servername"已更改.