Amazon Ubuntu 实例遭遇 `Permission Denied(publickey).`

注意:导致这个问题的原因有很多,比如你的 .pem 文件权限不正确,用户名写错,例如用了 ec2-userubuntu,命令里有拼写错误,等等。

就我的情况而言,如果我没判断错,问题是因为在错误的目录中运行了 sudo chmod -R ./,也就是在我的 home 文件夹里运行了它。

解决方法是把 home 文件夹的权限设置回来。

  1. 停止出问题的实例。
  2. 创建一个新实例,然后停止这个新的、没有问题的实例。
  3. 确保新创建的实例位于同一个可用区,例如 us-west-2c。这可以在 Network 步骤中的 Subnet 菜单里设置。
  4. 从出问题的实例上分离 EBS 卷,并将它挂载到新的、没有问题的实例上。
  5. 输入你的实例 ID 和挂载点,挂载点看起来像 /dev/sda2
  6. 启动新实例,并挂载刚刚附加的第二块磁盘。
[ubuntu ~]$ lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvdf  202:80   0  100G  0 disk
xvda1 202:1    0    8G  0 disk /
[ubuntu ~]$ sudo mount /dev/xvdf /mnt
  1. 切换到挂载路径,并将你的 home 目录权限恢复为 755
[ubuntu ~]$ cd /mnt/home/
[ubuntu ~]$ chmod 755 yourusername
  1. 停止新实例,并分离属于出问题实例的那个卷。
  2. 将刚刚分离的卷重新附加到原先出问题的实例上。

Leave a Reply