やりたいこと
パスワード認証を有効化し、デフォルトユーザー(RHEL8で実施するためec2-user)を使用して
パスワードによるssh接続をしたい。
EC2はAutoScalingで制御するため、AMIから起動する。
デフォルト設定だとどうなるか
パスワード認証を有効化し、デフォルトユーザーのパスワードを変更した後にAMIを取得しても、
AMIから起動したEC2はパスワード認証が無効化され、デフォルトユーザーのパスワードはリセットされる。
対応策
1. /etc/ssh/sshd_configでパスワード認証をno → yesにする。
PasswordAuthentication yes
上記がパスワード認証を有効化する設定
2. /etc/cloud/cloud.cfgでssh_pwauth:0(no) → 1(yes)にする。
ssh_pwauth: 1
上記がEC2起動時にパスワード認証を自動的に有効化or無効化にする設定
3. /etc/cloud/cloud.cfgでlock__passwd: true → lock__passwd: falseにする。
lock__passwd: false
上記がEC2起動時にデフォルトユーザーのパスワードを自動的にリセットする設定
4. デフォルトユーザーのパスワードを設定する。
sudo passwd ec2-user
5. AMIを取得する。
これでAMIから起動したEC2でも、パスワード認証が有効になり、デフォルトユーザーのパスワードもリセットされず、設定したパスワードでssh接続をすることができる。
参考サイト