ec2インスタンスに最初からパスワード認証でログインする方法(あとssh接続のポート番号変更)

はじめに

普通は鍵認証でしかec2インスタンスにログインできないのが面倒なのでパスワード認証でログインする方法をメモしときます。
あとイントラから22portでのアクセスが許可されていないのでssh接続のポート番号も変更しておきます。
AmazonLinux2ですべてユーザーデータで設定します。

ユーザーデータ

ユーザーデータ入力時に「テキストで」を選択し、以下の内容を入力してインスタンス起動。
※passwordのxxxのところに任意のパスワードを入力してください。
※ポート番号を変更しないならruncmd以下は入力しないでください。

#cloud-config
ssh_pwauth: yes
password: xxx
chpasswd: { expire: false }
runcmd:
 - sed -i -e 's/#Port 22/Port 443/' /etc/ssh/sshd_config
 - /etc/init.d/sshd restart

runcmdのところで/etc/init.d/sshd restartしたので、これでいけると思ったんですがインスタンスを起動してすぐssh接続はうまくいかず...
そのままインスタンスを一回停止して再度起動することで443ポートのパスワード認証でssh接続できました。(ユーザー名はec2-user)
ちょっとモヤりますが、まぁやりたいことができたのでいいか...

メモ

cloud-config関係の機能を使う場合は以下のリンクから調べてみる。
Documentation — Cloud-Init 18.5 documentation
今回使ったのは Modules のページの Set Passwords。
https://cloudinit.readthedocs.io/en/latest/topics/modules.html#set-passwords