AWSでRedhat, CentOS環境を自前AMIから構築するとsshログイン用のキーペアが指定したものでなくAMI作成時に使用していたものが有効になる。そのキーさえ持っていれば利用できるケドダッシュボードのEC2情報に表示されるキーペア名と異なると複数のEC2, 複数のキーペアを管理している環境ではそのうち混乱しそうな予感。つか、なんで構築時に指定したキーペアが配置されないのかを調べてたら/etc/rc.localに以下の記述を発見。
# Get the root ssh key setup ReTry=0 while [ ! -f /root/.ssh/authorized_keys ] && [ $ReTry -lt 10 ]; do sleep 2 curl -f <a href="http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key">http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key</a> > /root/.ssh/pubkey if [ 0 -eq 0 ]; then mv /root/.ssh/pubkey /root/.ssh/authorized_keys fi ReTry=$[Retry+1] done chmod 600 /root/.ssh/authorized_keys && restorecon /root/.ssh/authorized_keys
どうも最初からauthorized_keysファイルが存在する場合はそのまま利用する模様。authorized_keysファイルを削除して再起動すると構築時に指定したキーペアでsshログインできることを確認。自前 AMIを作成する時は/root/.ssh/authorized_keyを削除(待避)させておけばこの作業も不要になると思われる。(未確認) Amazon Linuxの場合はログインアカウントがec2-userなのでこの事象は発生しない。