2015-02-09 260 views
1

当我尝试通过ssh登录到EC2实例中,我得到了下面的错误权限被拒绝(公钥)AWS EC2权限被拒绝

我检查了主机名和用户名,一切都很好。错误地我给了chmod -R 777。当我上次登录时,在ec2实例根目录下,之后我无法连接到实例。我需要一些来自ec2-instance的文件。有什么办法可以登录ec2吗?我也尝试过新的实例。它的工作。

有什么可能吗?

回答

0

我面临类似的问题。 你将无法重新覆盖旧的实例,只需创建新的实例并设置权限 chmod 777(不使用-R)选项,那么你的问题将得到解决。

2

我自己没有尝试过,但我不明白为什么它不起作用。

尝试快照您的实例(从ec2控制台创建图像按钮)。完成后,在Ec2控制台中找到您的快照。它应该由具有模式“vol-xxxxxxxx”的ID的EBS卷支持。

启动一个新实例并将“vol-xxxxxxxx”作为辅助存储。 SSH到新实例并将设备“vol-xxxxxxxx”挂载到(例如/ dev/xvdf)temp目录并找到您要查找的文件。

+0

这是一个类似的问题/解决方案:http://alestic.com/2011/12/ec2-public-ssh-key – tedder42 2015-02-09 18:33:42

0

其中一个原因可能是您的密钥文件不能公开查看以便SSH工作。使用如果需要此命令:

  • 搭配chmod 400 mykey.pem

还要记住正确的用户ID为EC2(EC2用户)实例和命令:

  • SSH -l ec2-user -i .ssh/yourkey.pem public-ec2-host
0

使用Winscp还原权限更改。

最近我不小心把使用putty的“/ home/ec2-user”目录权限改为777。我立即退出。我也使用“Winscp”登录到服务器,并且在查看权限后没有断开连接。

解决方法是使用Winscp将“/ home/ec2-user”上的权限更改回700,并且我能够重新登录。它对我有用。 Winscp为我节省了很多麻烦。

0
  1. 分离根卷并附加到另一个实例。
  2. 登录到EC2实例
  3. 的mkdir tempfolder
  4. 须藤设置/ dev/svdf1(通常的/ dev/svdf1,你可以列出你量,以确保)
  5. CD tempfolder /家
  6. CHMOD 700 -R ec2-user
  7. sudo umount tempfolder
  8. 分离卷并将其附加到旧实例,请记住它是根实例,以便将其附加到名称“/ dev/xvda”。