【问题标题】:AWS EC2 Permission deniedAWS EC2 权限被拒绝
【发布时间】:2015-02-09 12:49:39
【问题描述】:
当我尝试通过 ssh 登录 EC2 实例时,出现以下错误 Permission denied (publickey)
我检查了主机名和用户名,一切都很好。上次登录时,我错误地从 ec2 实例根目录中给出了 chmod -R 777 .,之后我无法连接到实例。我需要一些来自 ec2-instance 的文件。有没有办法登录到ec2?我也尝试了新实例。它的工作。
有没有可能?
【问题讨论】:
标签:
amazon-web-services
ssh
amazon-ec2
【解决方案1】:
我自己没有尝试过,但我不明白为什么它不起作用。
尝试为您的实例创建快照(从 ec2 控制台创建图像按钮)。完成后,在 Ec2 控制台中找到您的快照。它应该由具有模式“vol-xxxxxxxx”的 id 的 EBS 卷支持。
启动一个新实例并将“vol-xxxxxxxx”附加为辅助存储。通过 SSH 连接到新实例并将与(例如 /dev/xvdf)相关的设备“vol-xxxxxxxx”挂载到临时目录并找到您要查找的文件。
【解决方案2】:
- 分离根卷并附加到另一个实例。
- 登录 ec2 实例
- mkdir 临时文件夹
- sudo mount /dev/svdf1(通常是 /dev/svdf1,你可以列出你的卷以确保)
- cd tempfolder/home
- chmod 700 -R ec2-user
- sudo umount 临时文件夹
- 分离卷并将其附加到旧实例,记住它是根实例,因此您使用名称“/dev/xvda”附加它。
【解决方案3】:
我遇到了类似的问题。
您将无法重新覆盖旧实例,只需创建新实例并设置权限
chmod 777(不要使用-R)选项,那么您的问题将得到解决。
【解决方案4】:
一个原因可能是您的密钥文件无法公开查看以使 SSH 正常工作。如果需要,请使用此命令:
还要记住 EC2(ec2-user) 实例的正确用户 ID 和命令:
- ssh -l ec2-user -i .ssh/yourkey.pem public-ec2-host
【解决方案5】:
使用 Winscp 恢复权限更改。
最近我不小心使用 putty 将“/home/ec2-user”目录权限更改为 777。我立即登出。我还使用“Winscp”登录到服务器,并且在更改权限后它没有断开连接。
解决方案是使用 Winscp 将“/home/ec2-user”的权限更改回 700,我能够重新登录。它对我有用。 Winscp 为我省去了很多麻烦。