AWS EC2で鍵認証からパスワード認証に変更するには

AWS便利ですね。
気軽にサーバを増設したり減らしたり。インスタンスを作成してから起動まで、ものの数分で行なえてしまいます。


しかし、EC2で作成されたサーバは、デフォルトで鍵認証しか許されていませんでした。
セキュリティ的には良いと思いますが、パスワード認証で使いたい要件もあると思います。


実際私がそうでしたので^^;
パスワード認証に変更する方法をメモしておきたいと思います。

条件

  1. EC2でサーバを作成済み
  2. 鍵認証でログインまで行なえている事

ルートパスワードの変更

$ sudo su -
[root@ip-xxx-xxx-xxx ~]# passwd 
Changing password for user root.
New password: 
BAD PASSWORD: it is based on a dictionary word
Retype new password: 
passwd: all authentication tokens updated successfully.

以上です。



以下、一般ユーザの追加。

一般ユーザ作成

EC2のデフォルトユーザーはec2-userというユーザになっています。
なので新しいユーザを追加、パスワード設定してみます。

useradd hoge
passwd hoge

hogeは適宜変更してください。

sudoを利用可能にする
sudo visudo

以下を追加しておきます。

hoge    ALL=(ALL)    ALL

sshの設定変更

デフォルトで鍵認証になっていますのでこれをパスワード認証に変えます。

バックアップを取る
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org 
sshd_configを開く
sudo vi /etc/ssh/sshd_config
変更内容
PermitRootLogin no      #rootでのログインを拒否
PermitEmptyPasswords no   # 空パスワードでのログインを拒否
PasswordAuthentication yes  #パスワード認証にする
RSAAuthentication no     # RSAでの認証を拒否。← 鍵認証を残しておきたい場合はyesにします
PubkeyAuthentication no    # 公開鍵での認証を拒否。← 鍵認証を残しておきたい場合はyesにします
sshdの再起動
sudo /etc/rc.d/init.d/sshd restart

※上記設定を誤っていた場合、ec2サーバに鍵認証ですらログイン出来なくなる可能性がありますので
以下のパスワードログインテストが成功するまで、このssh接続は切らないでいましょう!


パスワード認証のテストする

ssh hoge@ec2〜〜.amazonaws.com

無事にログイン出来たら成功です。
お疲れさまでした!