Amazon の Ubuntu インスタンスで `Permission Denied(publickey).` が発生する

注記: この問題を引き起こす原因は数多くあります。たとえば、.pem ファイルのパーミッションが正しくない、ec2-userubuntu などユーザー名が間違っている、コマンドにタイプミスがある、などです。

私の場合、正しければ、問題の原因は誤ったディレクトリ、つまり自分のホームフォルダーで sudo chmod -R ./ を実行してしまったことでした。

解決策は、ホームフォルダーのパーミッションを元に戻すことです。

  1. 問題のあるインスタンスを停止します。
  2. 新しいインスタンスを作成し、その問題のない新しいインスタンスを停止します。
  3. 新しく作成したインスタンスが、us-west-2c など同じ Availability Zone にあることを確認します。これは Network ステップの Subnet メニューで設定できます。
  4. 問題のあるインスタンスから EBS ボリュームをデタッチし、問題のない新しいインスタンスにアタッチします。
  5. インスタンス ID と、/dev/sda2 のようなマウントポイントを入力します。
  6. 新しいインスタンスを起動し、先ほどアタッチした 2 台目のドライブをマウントします。
[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. マウントしたパスに移動し、自分のホームディレクトリのパーミッションを 755 に戻します。
[ubuntu ~]$ cd /mnt/home/
[ubuntu ~]$ chmod 755 yourusername
  1. 新しいインスタンスを停止し、問題のあるインスタンスが所有していたボリュームをデタッチします。
  2. 先ほどデタッチしたボリュームを、元の問題のあるインスタンスに再アタッチします。

Leave a Reply