Amazon Linuxだとちょっと勝手が違ったのでやり方を記録しときます。Amazon Linux2でやってます。

グループ・ユーザ作成


グループを作成してからユーザを追加します。

1
2
groupadd exampleuser
adduser -g exampleuser exampleuser

鍵の生成


Amazon Linuxではインスタンス生成時にキーペアをアップロードできますが、作成時しかできない(?)っぽいのでいつものとおりにローカルマシンで作成してからSFTPでアップロードするという手順にします。

1
ssh-keygen -t rsa -b 4096 -C

一旦、ec2-userでsftpなどでEC2インスタンスに転送します。転送して権限とか所有者を設定します。

1
2
3
4
5
6
7
cd /home/exampleuser

# 以下 /home/exampleuser ディレクトリで作業
mkdir .ssh
chmod 0700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 0600 .ssh/authorized_keys

ec2-userで作業しているのでため、上記は所有者がec2-userになっています。そのため、ディレクトリとauthorized_keysの所有者をexampleuserに変更します。

1
chown -R exampleuser:exampleuser

作成したユーザをsudoersに追加


/etc/sudoers.d/cloud-init-usersを編集し、下記の行を追加します。

1
exampleuser ALL=(ALL) NOPASSWD:ALL

確認する


作成した秘密鍵を利用してexampleuserで接続し、sudoできることを確認します。

ec2-userを削除


ec2-userを削除します。

1
userdel ec2-user

最後にec2-userで接続できないことを確認して終わりです。